package {

    import flash.display.Sprite;
    import flash.display.SimpleButton;
    import flash.text.TextField;
    import flash.events.MouseEvent;

    [SWF(width="400", height="400", backgroundColor="#B9CCD5", frameRate="30")]

    public class SymbolEx extends Sprite
    {
        [Embed(source='UISkin.swf',symbol='UISKIN')]
        private var UISKIN:Class;                   ///< UISkin.swfの読み込み

        private var uiskin:Sprite;                  ///< UISKINのインスタンス
        private var upButton:SimpleButton;          ///< 上矢印
        private var downButton:SimpleButton;        ///< 下矢印
        private var textField:TextField;            ///< テキスト表示

        private var count:int = 10000;              ///< 表示する数字

        /// コンストラクタ
        public function SymbolEx()
        {
            // swf内に配置されたUISKINシンボル内に配置されているものを変数にマッピングする
            uiskin = new UISKIN();
            uiskin.x = 10;
            uiskin.y = 10;
            addChild(uiskin);

            textField = TextField(uiskin.getChildByName("text1"));
            textField.text = ""+count;

            upButton = SimpleButton(uiskin.getChildByName("up"));
            downButton = SimpleButton(uiskin.getChildByName("down"));

            // イベント追加
            uiskin.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
            uiskin.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        }

        /// マウスダウン処理
        private function onMouseDown(evt:MouseEvent):void
        {
            var name:String = evt.target.name;
            if(name == "down"){
                // countを減算して表示
                count--;
                textField.text = ""+count;
            }
        }

        /// マウスアップ処理
        private function onMouseUp(evt:MouseEvent):void
        {
            var name:String = evt.target.name;
            if(name == "up"){
                // countを加算して表示
                count++;
                textField.text = ""+count;
            }
        }

    }
}