| 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 | |
|---|
| | 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 | } |
|---|
| | 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; |
|---|
| | 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 | // -------------------------------------------------------------------// |
|---|
| 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); |
|---|
| 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 | |
|---|
| 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]); |
|---|
| | 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; |
|---|
| 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 | |
|---|
| 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 | |
|---|
| 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 | |
|---|