In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Dictionaryクラスを試してみた(お)

参考 にゃあプロジェクト
[AS3.0] Dictionaryクラスって何だお?
http://www.project-nya.jp/modules/weblog/details.php?blog_id=1160
Get Adobe Flash player
by sinketu 26 Aug 2010
/**
 * Copyright sinketu ( http://wonderfl.net/user/sinketu )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1Kl0
 */

/*
参考 にゃあプロジェクト
[AS3.0] Dictionaryクラスって何だお?
http://www.project-nya.jp/modules/weblog/details.php?blog_id=1160
*/
package{
    import flash.display.*;
    import flash.text.*;
    import flash.utils.Dictionary;
    import flash.events.MouseEvent;

    public class Main extends MovieClip{
        private var dictionary:Dictionary;
        private var myText:TextField
        public function Main(){
            dictionary = new Dictionary(true);
            for (var n:uint = 0; n < 3; n++) {
                var btn:Btn = new Btn();
                addChild(btn);
                btn.x=n*130+50;
                btn.y=50;
                btn.buttonMode=true;
                btn.addEventListener(MouseEvent.CLICK, click);
                dictionary[btn] = n;//キー(key)と値(value)のペアを保持している。ここではkey:btn(それぞれ)、value:n。
                
                //※補足。dictionary[n] = btn; として、数字から任意のbtnを参照することも可能。その場合は、key:n、value:btn(それぞれ)。
            }
            myText=new TextField();
            myText.border=true;
            addChild(myText);
            myText.x=50;
            myText.y=130;
        }
        public function click(evt:MouseEvent):void {
            //dictionaryを使って、クリックしたターゲット(key)に応じた数字(value)を参照している。
            myText.text=dictionary[evt.target].toString();
        }
    }
}
import flash.display.*;
class Btn extends Sprite{
    public function Btn(){
        this.graphics.beginFill(0xcccccc);
        this.graphics.drawRect(0,0,100,40);
        this.graphics.endFill();
    }
}