今天在寫一個flash小案子
因為習慣了asp.net的usercontrol模式
所以把不相關的顯示跟功能另外寫在一支flash(Child)並編譯成SWF
呼叫後希望能夠傳呼叫Child的function來初始化一些資料
結果在主要的SWF(parent)要呼叫Child的function還真是被絆到了一下
今天在寫一個flash小案子
因為習慣了asp.net的usercontrol模式
所以把不相關的顯示跟功能另外寫在一支flash(Child)並編譯成SWF
呼叫後希望能夠傳呼叫Child的function來初始化一些資料
結果在主要的SWF(parent)要呼叫Child的function還真是被絆到了一下
原本想要用applicationdomain來參照child的實體,但是applicationdomain似乎不是拿來這樣用的
後來總算找到方法
分享一下囉
首先在parent的flash中這樣寫
var _child:MovieClip;
_loadBtn.addEventListener(MouseEvent.CLICK,LoadChild);
_btn.addEventListener(MouseEvent.CLICK,CallFunc);
function LoadChild(e:MouseEvent):void {
var _load:Loader = new Loader();
var _request:URLRequest=new URLRequest("child.swf");
_load.contentLoaderInfo.addEventListener(Event.COMPLETE,LoadedSWF);
_load.load(_request);
_load.content
}
function LoadedSWF(e:Event):void {
_child=e.target.content as MovieClip;
_child.x=0;
_child.y=0;
addChild(_child);
}
function CallFunc(e:MouseEvent):void {
if (_child!=null) {
_child.SetChildValue(_text.text);
}
}
另外在child.swf中建立一個function叫做SetChildValue就好了
其實每種語言的寫法都差不多
只是library的設計風格不一樣,習慣後很快就能上手
還沒載入child.swf
載入還沒載入child.swf
呼叫child.swf的function來做設定child上的textinput
歡迎討論