Show
Ignore:
Timestamp:
07/01/08 02:22:00 (6 years ago)
Author:
suztomo
Message:

lang/actionscript/FPazzle : Implemented auto completion.

Location:
lang/actionscript/FPazzle/trunk/src
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • lang/actionscript/FPazzle/trunk/src/FPazzle.css

    r14276 r14965  
    1010        paddingTop: 5; 
    1111        paddingBottom: 5; 
     12        fontSize: 14; 
    1213} 
    1314 
     
    2021} 
    2122 
     23.note 
     24{ 
     25        paddingLeft: 20; 
     26} 
     27 
    2228.photoInfo 
    2329{ 
    2430        paddingTop: 50px; 
    25         fontSize: 12px; 
     31        fontSize: 12; 
    2632} 
     33 
     34.imageUrl 
     35{ 
     36        paddingTop: 10; 
     37        paddingLeft: 50; 
     38        fontSize: 12; 
     39}        
     40 
     41.giveup 
     42{ 
     43        right: 20px; 
     44} 
  • lang/actionscript/FPazzle/trunk/src/FPazzle.mxml

    r14949 r14965  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();"> 
    3         <mx:HBox styleName="keyword"> 
    4                 <mx:HBox enabled="true" id="searchbox"> 
    5                         <mx:TextInput id="keyword" styleName="input" focusIn="onSearchFocus();" focusOut="onSearchLeave();" /> 
    6                         <mx:Button id="keywordSubmit" label="Search" click="flickrStart();" /> 
     3        <mx:VBox width="100%" > 
     4                <mx:HBox styleName="keyword" width="90%"> 
     5                        <mx:HBox enabled="true" id="searchbox" width="100%"> 
     6                                <mx:TextInput id="keyword" styleName="input" focusIn="onSearchFocus();" focusOut="onSearchLeave();" /> 
     7                                <mx:Button id="keywordSubmit" label="Search" click="flickrStart();" /> 
     8                        </mx:HBox> 
     9                        <mx:Label id="permalink" selectable="true" /> 
     10                        <mx:Button id="giveUp" label="Give Up..." click="onGiveUp();" styleName="giveup" visible="false" /> 
    711                </mx:HBox> 
    8         <mx:Label id="imageUrl" selectable="true" /> 
    9         <mx:Label id="permalink" selectable="true" /> 
    10         </mx:HBox> 
     12                <mx:Label id="keywordNote" text='e.g. "flower", "sea", "haruhi" etc.' styleName="note" /> 
     13                <mx:Label id="imageUrl" selectable="true" styleName="imageUrl" text="hoghoge" /> 
     14        </mx:VBox> 
    1115 
    1216        <mx:Script> 
     
    6064                 
    6165                public function flickrStart():void { 
    62                         if (keyword.text.length < 5) { 
    63                                 Alert.show("Please Input 5 or more charactors word", "Too short keyword"); 
     66                        if (keyword.text.length < 3) { 
     67                                Alert.show("Please Input 3 or more charactors word", "Too short keyword"); 
    6468                                return; 
    6569                        } 
    6670                        var word:String = keyword.text; 
     71                        imageUrl.htmlText = ""; 
    6772                        flc.setOnComplete(onFlickrImageComplete); 
    6873                        flc.loadImage(word, 0); 
     
    7580                { 
    7681                        img = event.target.content.bitmapData; 
    77                         board = new FBoard(2, 2, img); 
     82                        board = new FBoard(3, 3, img); 
    7883                        board.addEventListener(FBoard.BOARD_COMPLETE, onBoardComplete); 
    7984                        addChild(board); 
    8085                        board.photo = flc.tmpPhoto; 
    81                         targetUrl = "http://flickr.com/photos/"+board.photo.ownerId+"/"+board.photo.id; 
    82                         imageUrl.htmlText = '<font color="#61D2FF"><a target="_blank" href="'+targetUrl+'" >'+ 'View current photo on Flickr</a></font>'; 
    83 /*                      permalink.htmlText = '  <font color="#61D2FF"><a target="_blank" href="http://suztomo.net/fp/?url='+board.photo.url+'">' 
    84                                 + 'Permalink to Pazzle</a></font>';*/ 
     86                        giveUp.visible = true; 
     87 
    8588                        board.createPieces(); 
    8689 
     
    9598                        bgImage.scaleY = 0.6; 
    9699                        bgImage.x = 50; 
    97                         bgImage.y = 100; 
     100                        bgImage.y = 130; 
    98101                        if (i != null) { 
    99102                                i.addCustomEventListener("moved", onMiniImageMoved); 
     
    137140                        searchbox.enabled = true; 
    138141                        board.showPhotoInfo(); 
     142                        targetUrl = "http://flickr.com/photos/"+board.photo.ownerId+"/"+board.photo.id; 
     143                        imageUrl.htmlText = '<font color="#61D2FF"><a target="_blank" href="'+targetUrl+'" >'+ '>> View current photo on Flickr</a></font>'; 
    139144                } 
    140145                 
     
    148153                private function onPressKey(event:KeyboardEvent):void 
    149154                { 
    150                         if (event.keyCode == 13 && searchbox.enabled) keywordSubmit.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
     155                        if (event.keyCode == 13) { 
     156                                if (searchbox.enabled) { 
     157                                        keywordSubmit.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
     158                                } else if (giveUp.visible == true) { 
     159                                        giveUp.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
     160                                } 
     161                        } 
    151162                } 
    152163 
     
    162173                } 
    163174                 
     175                private function onGiveUp():void 
     176                { 
     177                        giveUp.visible = false; 
     178                        if (board) board.showAnswer(); 
     179                } 
     180                 
    164181 
    165182                ]]> 
  • lang/actionscript/FPazzle/trunk/src/net/suztomo/FPazzle/FBoard.as

    r14660 r14965  
    2222                private static var answerDiff:Number = 2; 
    2323                private var eventDispatcher:EventDispatcher; 
     24                private var numAnsweredPieces:int = 0;; 
    2425 
    2526                public var p_width:Number, p_height:Number; 
     
    173174                } 
    174175                 
     176                public function showAnswer():void 
     177                { 
     178                        var g:FPieceGroup = groups[0]; 
     179                        g.x = p_width*x_num * 0.4 + 300; 
     180                        g.y = 120; 
     181                         
     182                        for (var j:uint=0; j<groups.length;j++) { 
     183                                (groups[j] as FPieceGroup).deactivate(); 
     184                        } 
     185                         
     186                        for (var i:uint=0; i<pieces.length; i++) { 
     187                                g.putNewPiece(pieces.getInline(i) as FPiece); 
     188                        } 
     189                         
     190                        slideNextPiece(); 
     191                } 
     192                 
     193                public function slideNextPiece():void 
     194                { 
     195                        if (numAnsweredPieces >= pieces.length) { 
     196                                checkAnswer(); 
     197                                return; 
     198                        } 
     199 
     200                        var p:FPiece = pieces.getInline(numAnsweredPieces) as FPiece; 
     201                        p.slideTo((numAnsweredPieces % x_num) * p_width, Math.floor(numAnsweredPieces / x_num) * p_height); 
     202                        numAnsweredPieces += 1; 
     203                } 
     204                 
    175205                // Event Listeners 
    176206                public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
  • lang/actionscript/FPazzle/trunk/src/net/suztomo/FPazzle/FPiece.as

    r14949 r14965  
    77        import flash.text.*; 
    88         
    9         import mx.effects.Rotate; 
    109        import mx.managers.*; 
    1110         
     
    2524                private var idNumber:TextField; 
    2625                private var rotateController:RotateController; 
     26                private var toX:Number, toY:Number; 
    2727 
    2828                public var x_index:uint, y_index:uint;           
     
    175175                                removeChild(rotateController); 
    176176                } 
     177                 
     178                public function slideTo(_toX:Number, _toY:Number):void 
     179                { 
     180                        toX = _toX; 
     181                        toY = _toY; 
     182                        addEventListener(Event.ENTER_FRAME, _slideTo); 
     183                } 
     184                 
     185                private function _slideTo(e:Event):void 
     186                { 
     187                        x += (toX - x)/ 6; 
     188                        y += (toY - y)/ 6; 
     189                         
     190                        if (Math.abs(toX - x) < 5) { 
     191                                x = toX; 
     192                                y = toY; 
     193                                rotation = 0; 
     194                                removeEventListener(Event.ENTER_FRAME, _slideTo); 
     195                                board.slideNextPiece(); 
     196                        } 
     197                } 
    177198        } 
    178199} 
  • lang/actionscript/FPazzle/trunk/src/net/suztomo/FPazzle/FlickrConnector.as

    r14429 r14965  
    88        import flash.events.Event; 
    99        import flash.events.EventDispatcher; 
    10         import flash.events.IEventDispatcher; 
    1110        import flash.net.URLRequest; 
    1211        import flash.system.*; 
     
    2827                private var keyword:String; 
    2928                private var eventDispatcher:EventDispatcher; 
     29                private var photoRecorder:Array; 
    3030                 
    3131                public var tmpPhoto:Photo; 
     
    4141                        keywordCounter = new Object(); 
    4242                        eventDispatcher = new EventDispatcher(); 
     43                        photoRecorder = new Array(); 
    4344                } 
    4445                 
     
    6061            var p:Photo; 
    6162                        urls = new Array(); 
     63                        var url:String; 
    6264                        var req_index:uint = (keywordCounter[keyword] == undefined)? 
    6365                                0 : keywordCounter[keyword]; 
    6466 
    65                         for (var i:uint=0; i<=req_index; i++) { 
     67                        for (var i:uint=0; i<ps.length; i++) { 
    6668                                p = ps[i]; 
    67                                 if (p) urls.push(makePhotoURL(p.id.toString(), p.server.toString(), p.secret)); 
     69                                if (photoRecorder.indexOf(p.id) == -1) { 
     70                                        // urls.push(makePhotoURL(p.id.toString(), p.server.toString(), p.secret)); 
     71                                        url = makePhotoURL(p.id.toString(), p.server.toString(), p.secret) 
     72                                        photoRecorder.push(p.id); 
     73                                        break; 
     74                                } 
    6875                        } 
    6976                         
     
    7582                                eventDispatcher.dispatchEvent(new Event(FlickrConnector.NOT_FOUND)); 
    7683                        } else { 
    77                                 req = new URLRequest(urls[req_index]); 
     84                                req = new URLRequest(url); 
    7885                                var lc:LoaderContext = new LoaderContext(true); 
    7986 
     
    8693                                } 
    8794                                 
    88                                 tmpPhoto = ps[req_index] as Photo; 
    89                                 tmpPhoto.url = urls[req_index]; 
     95                                tmpPhoto = p; 
     96                                tmpPhoto.url = url; 
    9097                        } 
    9198        }