SWF跟SWF該如何溝通

今天在寫一個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的設計風格不一樣,習慣後很快就能上手

  

001

還沒載入child.swf

002

載入還沒載入child.swf

003

呼叫child.swf的function來做設定child上的textinput

歡迎討論

connect.rar