チェンジセット 1626

差分発生行の前後
無視リスト:
コミット日時:
2008/10/16 05:47:53 (3 ヶ月前)
コミッタ:
n_mattun
ログメッセージ:

shortCutKey/clickHandler/dbClickHandler/repeat/プロパティを追加。やっとボタンらしい機能がついたw

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • mxp/specialbutton/as3/src/n_mattun/display/SpecialButton.as

    r1599 r1626  
    11package n_mattun.display{ 
    22        // 必要なパッケージの読み込み. 
     3        import fl.managers.FocusManager; 
    34        import flash.geom.*; 
    4         import flash.display.MovieClip; 
     5        import flash.text.TextField; 
     6        import flash.display.DisplayObject; 
    57        import flash.display.Shape; 
    68        import flash.display.Sprite; 
     9        import flash.display.MovieClip; 
    710        import flash.net.navigateToURL; 
    811        import flash.net.URLRequest; 
     
    1215        import flash.events.FocusEvent; 
    1316        import flash.utils.getDefinitionByName; 
     17        import flash.utils.Timer; 
     18        import flash.events.TimerEvent; 
     19        import n_mattun.keyAssist.*; 
    1420         
    1521        public class SpecialButton extends MovieClip { 
     
    5965                private var baseLabelPos_x      :Number; 
    6066                private var baseLabelPos_y      :Number; 
    61                  
     67                private var scDownListener      :ShortCutListener; 
     68                private var scUpListener        :ShortCutListener; 
     69                private var focusListener   :FocusManager; 
     70                private var repeatTimer         :Timer = new Timer(0,0); 
     71 
    6272                public var __w                          :Number = 80; 
    6373                public var __h                          :Number = 20; 
     
    7383                public var __bgAlpha            :Number = 100; 
    7484                public var __labelAlpha         :Number = 100; 
    75                 public var __data                       :Array  = [100]; 
     85                public var __data                       :Array  = [true]; 
    7686                public var __actionType         :String = "ハンドラ起動"; 
    7787                public var __enabled            :Boolean= true; 
    7888                public var __useHandCursor      :Boolean= true; 
    7989                public var __pushPixel          :Number = 1; 
    80                 public var __initHandler        :String = ""; 
     90                 
     91                //ハンドラ郡 
     92                public var __initHandler        :String = "";//ボタン読み込み直後に発動するハンドラ 
     93                public var __clickHandler       :String = "";//ごく普通のクリックハンドラ 
     94                public var __dbClickHandler     :String = "";//ダブルクリックハンドラ 
     95                public var __shortCutKey        :String = "";//ショートカットキー 
     96                public var __repeat                     :uint   = 0; //ボタン押しっぱで連続ハンドラ起動する場合のリピート間隔(0の場合はリピートなし) 
     97                 
    8198                // -------------------------------------------------------------------// 
    8299                //View 
     
    90107                public var body_mc:ButtonBox = new ButtonBox(); 
    91108                 
    92                 public function SpecialButton() { 
     109                public function SpecialButton(...args:Array) { 
    93110                        var _vw:Number = 0; 
    94111                        var _vh:Number = 0; 
     
    98115                                _vw = __w; 
    99116                                _vh = __h; 
     117                                args[0].addChild(this); 
    100118                        }else{ 
    101119                                //親がnull以外 = コンストラクタ前の時点でaddChildされてる = タイムラインで生成された 
     
    135153                        this.pushPixel          = __pushPixel; 
    136154                         
    137                          
    138                         this.__upView.handler           = "upHandler"; 
    139                         this.__overView.handler         = "overHandler"; 
    140                         this.__downView.handler         = "downHandler"; 
    141                         this.__disableView.handler      = "disableHandler"; 
    142                          
    143                         this.buttonMode      = true; 
    144                         this.focusRect       = false; 
    145                         this.mouseChildren   = false; 
     155                        //テスト用 
     156                        //this.__upView.handler             = "stopDrag"; 
     157                        //this.__overView.handler               = "BorderBox_bb.width"; 
     158                        //this.__downView.handler               = "startDrag"; 
     159                        //this.__disableView.handler    = "ButtonBox_box.width"; 
     160 
     161                        __shortCutKey = "shift+a"; 
     162                        repeat    =     500;//ボタン押しっぱで連続ハンドラ起動する場合のリピート間隔(0の場合はリピートなし) 
     163                         
     164                        //ショートカットキーを設定しておく 
     165                        scDownListener = new ShortCutListener(this,"shortCutDownHandler",__shortCutKey,"down",0,0); 
     166                        scUpListener   = new ShortCutListener(this,"shortCutUpHandler"  ,__shortCutKey,"up",0,0); 
     167 
     168                        this.__initHandler                      = "initHandler"; 
     169                        this.__clickHandler                     = "initHandler"; 
     170                        this.__dbClickHandler           = "initHandler"; 
     171                        this.shortCutKey                        = __shortCutKey; 
     172                         
     173                         
     174                        this.buttonMode           = true; 
     175                        this.focusRect            = false; 
     176                        this.mouseChildren        = false;//子インスタンスのイベント検知有無 
     177                        this.doubleClickEnabled   = true;//ダブルクリックイベントの検知可否 
     178                         
    146179                        this.useHandCursor   = __useHandCursor; 
    147180                         
     
    154187                         
    155188                        callInitHandler(); 
     189                         
    156190                         
    157191                } 
     
    484518                public override function set enabled(_bool:Boolean):void { 
    485519                        __enabled  = _bool; 
     520                         
    486521                        var vMouseEvent:Object = new Object(); 
    487522                        if(_bool){ 
     523 
    488524                                this.addEventListener(MouseEvent.MOUSE_OVER,updateViewCatcher); 
    489525                                this.addEventListener(MouseEvent.MOUSE_OUT,updateViewCatcher); 
     
    494530                                this.addEventListener(MouseEvent.MOUSE_DOWN,btnDownHandler); 
    495531                                this.addEventListener(MouseEvent.MOUSE_UP,btnUpHandler); 
     532                                this.addEventListener(MouseEvent.CLICK,btnClickHandler); 
     533                                this.addEventListener(MouseEvent.DOUBLE_CLICK,btnDbClickHandler); 
    496534                                 
    497535                                this.addEventListener(FocusEvent.FOCUS_IN,updateViewCatcher); 
     
    503541                                vMouseEvent.type=MouseEvent.MOUSE_OUT; 
    504542                                updateViewCatcher(vMouseEvent); 
    505  
     543                                 
    506544                        }else{ 
    507545                                this.removeEventListener(MouseEvent.MOUSE_OVER,updateViewCatcher); 
     
    513551                                this.removeEventListener(MouseEvent.MOUSE_DOWN,btnDownHandler); 
    514552                                this.removeEventListener(MouseEvent.MOUSE_UP,btnUpHandler); 
     553                                this.removeEventListener(MouseEvent.CLICK,btnClickHandler); 
    515554                                 
    516555                                this.removeEventListener(FocusEvent.FOCUS_IN,updateViewCatcher); 
     
    584623                        __initHandler = _str; 
    585624                } 
     625                // -------------------------------------------------------------------// 
     626                //[Inspectable(defaultValue="", name="27.クリックハンドラ名", type="String")] 
     627                public function set clickHandler(_str:String):void { 
     628                        __clickHandler = _str; 
     629                } 
     630                // -------------------------------------------------------------------// 
     631                //[Inspectable(defaultValue="", name="28.ダブルクリックハンドラ名", type="String")] 
     632                public function set dbClickHandler(_str:String):void { 
     633                        __dbClickHandler = _str; 
     634                } 
     635                // -------------------------------------------------------------------// 
     636                //[Inspectable(defaultValue="", name="28.ダブルクリックハンドラ名", type="String")] 
     637                public function set shortCutKey(_str:String):void { 
     638                        __shortCutKey = _str; 
     639                        scDownListener.shortCutKey = _str; 
     640                        scUpListener.shortCutKey = _str; 
     641                } 
     642                // -------------------------------------------------------------------// 
     643                //[Inspectable(defaultValue="", name="28.ダブルクリックハンドラ名", type="String")] 
     644                public function set repeat(_num:uint):void { 
     645                        __repeat = _num; 
     646                         
     647                        if(_num == 0){ 
     648                                repeatTimer.removeEventListener(TimerEvent.TIMER, repeatHandler); 
     649                        }else{ 
     650                                repeatTimer.addEventListener(TimerEvent.TIMER, repeatHandler); 
     651                                repeatTimer.delay = _num; 
     652                        } 
     653                } 
    586654                // ===================================================================// 
    587655                // getter 
     
    826894                public function get initHandler():String { 
    827895                        return __initHandler; 
     896                } 
     897                // -------------------------------------------------------------------// 
     898                public function get clickHandler():String { 
     899                        return __clickHandler; 
     900                } 
     901                // -------------------------------------------------------------------// 
     902                public function get dbClickHandler():String { 
     903                        return __dbClickHandler; 
     904                } 
     905                // -------------------------------------------------------------------// 
     906                public function get shortCutKey():String { 
     907                        return __shortCutKey; 
     908                } 
     909                // -------------------------------------------------------------------// 
     910                public function get repeat():uint { 
     911                        return __repeat; 
    828912                } 
    829913                // ===================================================================// 
     
    10881172                                        _obj = __overView; 
    10891173                                        btnStatus = "up"; 
     1174                                        if(repeat != 0) repeatTimer.stop(); 
    10901175                                break; 
    10911176                                case MouseEvent.MOUSE_DOWN : 
     1177                                case "keyDown"             : 
    10921178                                        _obj = __downView; 
    10931179                                        btnStatus = "down"; 
     1180                                        if(repeat != 0){ 
     1181                                                repeatHandler(e); 
     1182                                                repeatTimer.start(); 
     1183                                        } 
    10941184                                break; 
    10951185                                case MouseEvent.MOUSE_OUT  : 
    10961186                                case FocusEvent.FOCUS_OUT  : 
     1187                                case "keyUp"               : 
    10971188                                        _obj = __upView; 
    10981189                                        btnStatus = "out"; 
     1190                                        if(repeat != 0) repeatTimer.stop(); 
    10991191                                break; 
    11001192                                case "disable"                     : 
     
    11291221                } 
    11301222                // -------------------------------------------------------------------// 
     1223                //ショートカットキーdown時のハンドラ 
     1224                public function shortCutDownHandler():void { 
     1225                        focusListener = new FocusManager(this.stage); 
     1226                        trace("shortCutDownHandler",focusListener.getFocus()); 
     1227                        //実行までの関門 
     1228                        if(enabled == false) return;            //disableの場合はダメ 
     1229                        if(this.visible == false) return;       //自分が非表示の場合もダメ 
     1230                        if(focusListener.getFocus() is TextField) return;       //現在のフォーカスがテキストボックスの場合もダメ 
     1231                         
     1232                        var e:Object = new Object(); 
     1233                        e.type = "keyDown"; 
     1234                        updateViewCatcher(e); 
     1235//                      btnClickHandler(e); 
     1236                } 
     1237                // -------------------------------------------------------------------// 
     1238                //ショートカットキーup時のハンドラ 
     1239                public function shortCutUpHandler():void { 
     1240                        focusListener = new FocusManager(this.stage); 
     1241                        trace("shortCutUpHandler",focusListener.getFocus()); 
     1242                        //実行までの関門 
     1243                        if(enabled == false) return;            //disableの場合はダメ 
     1244                        if(this.visible == false) return;       //自分が非表示の場合もダメ 
     1245                        if(focusListener.getFocus() is TextField) return;       //現在のフォーカスがテキストボックスの場合もダメ 
     1246 
     1247                        var e:Object = new Object(); 
     1248                        e.type = "keyUp"; 
     1249                        updateViewCatcher(e); 
     1250                        btnClickHandler(e); 
     1251                } 
     1252                // -------------------------------------------------------------------// 
    11311253                //init時のハンドラ 
    11321254                private function callInitHandler():void { 
    11331255                         
    1134                         var __path:*         = this.parent; 
    1135                         var __handler:String = __initHandler; 
     1256                        var _array:Array     = new Array(2); 
    11361257                        var _objPath:*       = this.parent; 
    11371258                        var _objProp:String  = ""; 
    1138                         var _isCommitHandler:Boolean = true; 
    1139                         var _pStr:String     = __initHandler; 
    1140                          
    1141                         if(_pStr != ""){ 
    1142                                 //文字列にターゲットパスが含まれる場合は考慮する 
    1143                                 if(__upView.handler.indexOf("this.") >= 0 || __upView.handler.indexOf("root.") >= 0 || __upView.handler.indexOf("parent.") >= 0){ 
    1144                                         var _array:*; 
    1145                                         _array = getHandlerTargetPath(_pStr); 
    1146                                         _objPath = _array[0]; 
    1147                                         _objProp = _array[1]; 
    1148                                         //ターゲットパス末尾のメソッド/プロパティを判別 
    1149                                         if(typeof(_objPath[_objProp]) == "function"){ 
    1150                                                 //メソッドの場合はハンドラ起動に任せる 
    1151                                                 __path    = _objPath; 
    1152                                                 __handler = _objProp; 
    1153                                         }else{ 
    1154                                                 //プロパティの場合は代入して、ハンドラ起動フラグを降ろしておく 
    1155                                                 _isCommitHandler = false; 
    1156                                                 _objPath[_objProp] = __data[0]; 
    1157                                         } 
    1158                                 } 
    1159                                 //init時のハンドラ発動時の引数は必ず自分自身にしておく 
    1160                                 if(_isCommitHandler){ 
    1161                                         __path[__handler](this); 
    1162                                 } 
    1163                         } 
    1164                 } 
    1165                 // -------------------------------------------------------------------// 
    1166                 //up時のハンドラ 
    1167                 private function btnUpHandler(e:*):void { 
    1168                         trace("---------------\nbtnUpHandler",actionType); 
    1169                         var __url :URLRequest = new URLRequest(); 
    1170                         var __path:*         = this.parent; 
    1171                         var __handler:String = __upView.handler; 
     1259                         
     1260                        //ハンドラがブランクの場合は実行しない 
     1261                        if(__initHandler == "") return; 
     1262                         
     1263                        //ハンドラ文字列をパスとプロパティに分割する 
     1264                        _array   = splitHandlerPath(__initHandler); 
     1265                        _objPath = _array[0]; 
     1266                        _objProp = _array[1]; 
     1267                        trace(_objPath+"."+_objProp+"(__initHandler)"); 
     1268                        //プロパティがfunctionの場合はハンドラとして発動。 
     1269                        if(_objPath[_objProp] is Function){ 
     1270                                //initハンドラは必ずthisを返すようにしておく 
     1271                                commitHandler(_objPath,_objProp,[this]); 
     1272                        }else{ 
     1273                                return;//functionじゃない場合は何もしない 
     1274                        } 
     1275                } 
     1276                // -------------------------------------------------------------------// 
     1277                //Click時のハンドラ 
     1278                private function btnClickHandler(e:*):void { 
     1279                        trace("---------------btnClickHandler",actionType); 
     1280                         
     1281                        var _array:Array     = new Array(2); 
    11721282                        var _objPath:*       = this.parent; 
    11731283                        var _objProp:String  = ""; 
    1174                         var _isCommitHandler:Boolean = true; 
    1175                          
    1176                         //文字列にターゲットパスが含まれる場合は考慮する 
    1177                         if(__upView.handler.indexOf("this.") >= 0 || __upView.handler.indexOf("root.") >= 0 || __upView.handler.indexOf("parent.") >= 0){ 
    1178                                 var _pStr  = __upView.handler; 
    1179                                 var _array:*; 
    1180                                 _array = getHandlerTargetPath(_pStr); 
    1181                                 _objPath = _array[0]; 
    1182                                 _objProp = _array[1]; 
    1183                                 //ターゲットパス末尾のメソッド/プロパティを判別 
    1184                                 if(typeof(_objPath[_objProp]) == "function"){ 
    1185                                         //メソッドの場合はハンドラ起動に任せる 
    1186                                         __path    = _objPath; 
    1187                                         __handler = _objProp; 
    1188                                 }else{ 
    1189                                         //プロパティの場合は代入して、ハンドラ起動フラグを降ろしておく 
    1190                                         _isCommitHandler = false; 
    1191                                         _objPath[_objProp] = __data[0]; 
    1192                                 } 
    1193                         } 
     1284                         
     1285                        //ハンドラがブランクの場合は実行しない 
     1286                        if(__clickHandler == "") return; 
     1287                         
     1288                        //ハンドラ文字列をパスとプロパティに分割する 
     1289                        _array   = splitHandlerPath(__clickHandler); 
     1290                        _objPath = _array[0]; 
     1291                        _objProp = _array[1]; 
     1292                        trace(_objPath+"."+_objProp+"(btnClickHandler)"); 
     1293                         
     1294                        switchHandler(_objPath,_objProp); 
     1295                        /* 
     1296                        //repeatが0の場合は速攻魔法発動 
     1297                        if(repeat == 0){ 
     1298                                switchHandler(_objPath,_objProp); 
     1299                        }else{ 
     1300                        //違う場合はTimer経由でずっと俺のタ(ry 
     1301                                repeatTimer.start(); 
     1302                        } 
     1303                        */ 
     1304                } 
     1305                // -------------------------------------------------------------------// 
     1306                //repeatTimer経由で発動するハンドラ 
     1307                private function repeatHandler(e:*):void { 
     1308                        var _array:Array     = new Array(2); 
     1309                        var _objPath:*       = this.parent; 
     1310                        var _objProp:String  = ""; 
     1311                         
     1312                        //ハンドラがブランクの場合は実行しない 
     1313                        if(__clickHandler == "") return; 
     1314                         
     1315                        //ハンドラ文字列をパスとプロパティに分割する 
     1316                        _array   = splitHandlerPath(__clickHandler); 
     1317                        _objPath = _array[0]; 
     1318                        _objProp = _array[1]; 
     1319                         
     1320                        switchHandler(_objPath,_objProp); 
     1321                } 
     1322                // -------------------------------------------------------------------// 
     1323                //actionTypeによって処理内容を分岐させるハンドラ本体 
     1324                private function switchHandler(_objPath:*,_objProp:*):void { 
     1325                         
     1326                        var __url:URLRequest = new URLRequest(); 
     1327                         
    11941328                        switch(actionType){ 
    11951329                                case "ハンドラ起動": 
    1196                                         if(_isCommitHandler){ 
    1197                                                 switch(__data.length){ 
    1198                                                         case 0: __path[__handler]();    break; 
    1199                                                         case 1: __path[__handler](__data[0]);   break; 
    1200                                                         case 2: __path[__handler](__data[0],__data[1]); break; 
    1201                                                         case 3: __path[__handler](__data[0],__data[1],__data[2]);       break; 
    1202                                                         case 4: __path[__handler](__data[0],__data[1],__data[2],__data[3]);     break; 
    1203                                                         case 5: __path[__handler](__data[0],__data[1],__data[2],__data[3],__data[4]);   break; 
    1204                                                         case 6: __path[__handler](__data[0],__data[1],__data[2],__data[3],__data[4],__data[5]); break; 
    1205                                                 } 
     1330                                        //プロパティがfunctionの場合はハンドラとして発動。 
     1331                                        if(_objPath[_objProp] is Function){ 
     1332                                                commitHandler(_objPath,_objProp,__data); 
     1333                                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1334                                        }else if(_objProp in _objPath){ 
     1335                                                setHandleProperty(_objPath,_objProp,__data[0]); 
    12061336                                        } 
    12071337                                break; 
    12081338                                case "指定データにgotoAndPlay": 
    1209                                         __path["gotoAndPlay"](__data[0]); 
    1210                                 break; 
     1339                                        if(__data.length == 1) _objPath["gotoAndPlay"](__data[0]); 
     1340                                        if(__data.length == 2) _objPath["gotoAndPlay"](__data[0],__data[1]); 
     1341                                break; 
     1342                                        gotoAndPlay 
    12111343                                case "指定データにgotoAndStop": 
    1212                                         __path["gotoAndStop"](__data[0]); 
     1344                                        if(__data.length == 1) _objPath["gotoAndStop"](__data[0]); 
     1345                                        if(__data.length == 2) _objPath["gotoAndStop"](__data[0],__data[1]); 
    12131346                                break; 
    12141347                                case "指定データにnavigateToURL": 
     
    12211354                                break; 
    12221355                                case "play": 
    1223                                         __path["play"](); 
     1356                                        _objPath["play"](); 
    12241357                                break; 
    12251358                                case "stop": 
    1226                                         __path["stop"](); 
     1359                                        _objPath["stop"](); 
    12271360                                break; 
    12281361                                case "nextFrame": 
    1229                                         __path["nextFrame"](); 
     1362                                        _objPath["nextFrame"](); 
    12301363                                break; 
    12311364                                case "prevFrame": 
    1232                                         __path["prevFrame"](); 
     1365                                        _objPath["prevFrame"](); 
    12331366                                break; 
    12341367                                case "何もしない": 
    12351368                                break; 
     1369                        } 
     1370                } 
     1371                // -------------------------------------------------------------------// 
     1372                //ダブルクリック時のハンドラ 
     1373                private function btnDbClickHandler(e:*):void { 
     1374                        trace("---------------btnDbClickHandler",actionType); 
     1375                         
     1376                        var _array:Array     = new Array(2); 
     1377                        var _objPath:*       = this.parent; 
     1378                        var _objProp:String  = ""; 
     1379                         
     1380                        //ハンドラがブランクの場合は実行しない 
     1381                        if(__dbClickHandler == "") return; 
     1382                         
     1383                        //ハンドラ文字列をパスとプロパティに分割する 
     1384                        _array   = splitHandlerPath(__dbClickHandler); 
     1385                        _objPath = _array[0]; 
     1386                        _objProp = _array[1]; 
     1387                        trace(_objPath+"."+_objProp+"(__dbClickHandler)"); 
     1388                        //プロパティがfunctionの場合はハンドラとして発動。 
     1389                        if(_objPath[_objProp] is Function){ 
     1390                                commitHandler(_objPath,_objProp,__data); 
     1391                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1392                        }else if(_objProp in _objPath){ 
     1393                                setHandleProperty(_objPath,_objProp,__data[0]); 
     1394                        }else{ 
     1395                        //どちらも行われなかった場合はメソッド中断 
     1396                                return; 
     1397                        } 
     1398                } 
     1399                // -------------------------------------------------------------------// 
     1400                //up時のハンドラ 
     1401                private function btnUpHandler(e:*):void { 
     1402                        trace("---------------btnUpHandler",actionType); 
     1403                         
     1404                        var _array:Array     = new Array(2); 
     1405                        var _objPath:*       = this.parent; 
     1406                        var _objProp:String  = ""; 
     1407                         
     1408                        //ハンドラがブランクの場合は実行しない 
     1409                        if(__upView.handler == "") return; 
     1410                         
     1411                        //ハンドラ文字列をパスとプロパティに分割する 
     1412                        _array   = splitHandlerPath(__upView.handler); 
     1413                        _objPath = _array[0]; 
     1414                        _objProp = _array[1]; 
     1415                        trace(_objPath+"."+_objProp+"(__upView.handler)"); 
     1416                        //プロパティがfunctionの場合はハンドラとして発動。 
     1417                        if(_objPath[_objProp] is Function){ 
     1418                                commitHandler(_objPath,_objProp,__data); 
     1419                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1420                        }else if(_objProp in _objPath){ 
     1421                                setHandleProperty(_objPath,_objProp,__data[0]); 
     1422                        }else{ 
     1423                        //どちらも行われなかった場合はメソッド中断 
     1424                                return; 
    12361425                        } 
    12371426                         
     
    12421431                //over時のハンドラ 
    12431432                private function btnOverHandler(e:*):void { 
    1244                         trace("---------------\nbtnOverHandler",e.target.parent.name,e.target.name); 
    1245                         var __path:*          = this.parent; 
    1246                         if(__overView.handler != ""){ 
    1247                                 switch(__data.length){ 
    1248                                         case 0: __path[__overView.handler]();   break; 
    1249                                         case 1: __path[__overView.handler](__data[0]);  break; 
    1250                                         case 2: __path[__overView.handler](__data[0],__data[1]);        break; 
    1251                                         case 3: __path[__overView.handler](__data[0],__data[1],__data[2]);      break; 
    1252                                         case 4: __path[__overView.handler](__data[0],__data[1],__data[2],__data[3]);    break; 
    1253                                         case 5: __path[__overView.handler](__data[0],__data[1],__data[2],__data[3],__data[4]);  break; 
    1254                                         case 6: __path[__overView.handler](__data[0],__data[1],__data[2],__data[3],__data[4],__data[5]);        break; 
    1255                                 } 
    1256                         } 
     1433                        trace("---------------btnOverHandler",e.target.parent.name,e.target.name); 
     1434                         
     1435                        var _array:Array     = new Array(2); 
     1436                        var _objPath:*       = this.parent; 
     1437                        var _objProp:String  = ""; 
     1438                         
     1439                        //ハンドラがブランクの場合は実行しない 
     1440                        if(__overView.handler == "") return; 
     1441                         
     1442                        //ハンドラ文字列をパスとプロパティに分割する 
     1443                        _array   = splitHandlerPath(__overView.handler); 
     1444                        _objPath = _array[0]; 
     1445                        _objProp = _array[1]; 
     1446                        trace(_objPath+"."+_objProp+"(__overView.handler)"); 
     1447                        //プロパティがfunctionの場合はハンドラとして発動。 
     1448                        if(_objPath[_objProp] is Function){ 
     1449                                commitHandler(_objPath,_objProp,__data); 
     1450                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1451                        }else if(_objProp in _objPath){ 
     1452                                setHandleProperty(_objPath,_objProp,__data[0]); 
     1453                        }else{ 
     1454                        //どちらも行われなかった場合はメソッド中断 
     1455                                return; 
     1456                        } 
     1457                         
    12571458                        //音を鳴らす 
    12581459                        playLinkSound(__overView.sound); 
     
    12621463                private function btnDownHandler(e:*):void { 
    12631464                        trace("---------------\nbtnDownHandler"); 
    1264                         var __path:*          = this.parent; 
    1265                         if(__downView.handler != ""){ 
    1266                                 switch(__data.length){ 
    1267                                         case 0: __path[__downView.handler]();   break; 
    1268                                         case 1: __path[__downView.handler](__data[0]);  break; 
    1269                                         case 2: __path[__downView.handler](__data[0],__data[1]);        break; 
    1270                                         case 3: __path[__downView.handler](__data[0],__data[1],__data[2]);      break; 
    1271                                         case 4: __path[__downView.handler](__data[0],__data[1],__data[2],__data[3]);    break; 
    1272                                         case 5: __path[__downView.handler](__data[0],__data[1],__data[2],__data[3],__data[4]);  break; 
    1273                                         case 6: __path[__downView.handler](__data[0],__data[1],__data[2],__data[3],__data[4],__data[5]);        break; 
    1274                                 } 
    1275                         } 
     1465 
     1466                        var _array:Array     = new Array(2); 
     1467                        var _objPath:*       = this.parent; 
     1468                        var _objProp:String  = ""; 
     1469                         
     1470                        //ハンドラがブランクの場合は実行しない 
     1471                        if(__downView.handler == "") return; 
     1472                         
     1473                        //ハンドラ文字列をパスとプロパティに分割する 
     1474                        _array   = splitHandlerPath(__downView.handler); 
     1475                        _objPath = _array[0]; 
     1476                        _objProp = _array[1]; 
     1477                        trace(_objPath+"."+_objProp+"(__downView.handler)"); 
     1478                        //プロパティがfunctionの場合はハンドラとして発動。 
     1479                        if(_objPath[_objProp] is Function){ 
     1480                                commitHandler(_objPath,_objProp,__data); 
     1481                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1482                        }else if(_objProp in _objPath){ 
     1483                                setHandleProperty(_objPath,_objProp,__data[0]); 
     1484                        }else{ 
     1485                        //どちらも行われなかった場合はメソッド中断 
     1486                                return; 
     1487                        } 
     1488                         
    12761489                        //音を鳴らす 
    12771490                        playLinkSound(__downView.sound); 
     
    12811494                private function btnDisableHandler(e:*):void { 
    12821495                        trace("---------------\nbtnDisableHandler"); 
    1283                         var __path:*          = this.parent; 
    1284                         if(__disableView.handler != ""){ 
    1285                                 switch(__data.length){ 
    1286                                         case 0: __path[__disableView.handler]();        break; 
    1287                                         case 1: __path[__disableView.handler](__data[0]);       break; 
    1288                                         case 2: __path[__disableView.handler](__data[0],__data[1]);     break; 
    1289                                         case 3: __path[__disableView.handler](__data[0],__data[1],__data[2]);   break; 
    1290                                         case 4: __path[__disableView.handler](__data[0],__data[1],__data[2],__data[3]); break; 
    1291                                         case 5: __path[__disableView.handler](__data[0],__data[1],__data[2],__data[3],__data[4]);       break; 
    1292                                         case 6: __path[__disableView.handler](__data[0],__data[1],__data[2],__data[3],__data[4],__data[5]);     break; 
    1293                                 } 
    1294                         } 
     1496                         
     1497                        var _array:Array     = new Array(2); 
     1498                        var _objPath:*       = this.parent; 
     1499                        var _objProp:String  = ""; 
     1500                         
     1501                        //ハンドラがブランクの場合は実行しない 
     1502                        if(__disableView.handler == "") return; 
     1503                         
     1504                        //ハンドラ文字列をパスとプロパティに分割する 
     1505                        _array   = splitHandlerPath(__disableView.handler); 
     1506                        _objPath = _array[0]; 
     1507                        _objProp = _array[1]; 
     1508                        trace(_objPath+"."+_objProp+"(__disableView.handler)"); 
     1509                        //プロパティがfunctionの場合はハンドラとして発動。 
     1510                        if(_objPath[_objProp] is Function){ 
     1511                                commitHandler(_objPath,_objProp,__data); 
     1512                        //そうじゃない場合はプロパティの有無確認をして、あった場合は代入処理を行う 
     1513                        }else if(_objProp in _objPath){ 
     1514                                setHandleProperty(_objPath,_objProp,__data[0]); 
     1515                        }else{ 
     1516                        //どちらも行われなかった場合はメソッド中断 
     1517                                return; 
     1518                        } 
     1519                         
    12951520                        //音を鳴らす 
    12961521                        playLinkSound(__disableView.sound); 
     1522                } 
     1523                // -------------------------------------------------------------------// 
     1524                //外部ハンドラ発動ハンドラ 
     1525                private function commitHandler(_path:*,_handler:String,_args:Array):void { 
     1526