外部swfをロードするタイプのコンテンツを作っていて、親は自分、子(外部swf)はデザイナーさん担当でASだけこちらで書くというスタイルで作業してます。
で、子のボタン動作は下記のように親から参照するように共通化したのだけど、これだと子だけでテストしたときに、親がなのでエラーが出てしまう。
//btn_next:ボタンイベント設定var parentObj:Object = this.parent.parent.parentvar func_btn:Function = parentObj.xGetBtnFunction_next()btn_next.addEventListener(MouseEvent.CLICK,func_btn)
(※this.parent.parent.parentが親に当たる)
実害はないもののデザイナーさんにエラーを見せるのもイヤなので、回避を考えてみた。
//btn_next:ボタンイベント設定if (this.parent is Stage) {
//単体動作時のエラー回避trace(“parentObj is null”);} else {trace(“parentObj is not null”);//btn_next:ボタンイベント設定var parentObj:Object = this.parent.parent.parent;var func_btn:Function = parentObj.xGetBtnFunction_next();btn_next.addEventListener(MouseEvent.CLICK,func_btn);}
このスクリプトは、メインのタイムラインに書いてあるので、[object MainTimeline]の上(this.parent)が、[object Stage]だったら単体動作、そうでなければ外部読み込みされているという判断です(ちなみに外部読み込みの場合は[object SwfLoader]になります)。
コレで問題ないんだけど、もっとカンタンだったり定番的な方法があったら教えて下さい。