[英]Loading an swf into another swf accessing functions in the child swf
我有一個 class 一個名為 draw.fla 的 fla。 與draw關聯的文件class是Draw.as,Draw.as里面的代碼如下
package
{
import flash.display.MovieClip;
import flash.display.Graphics;
public class Draw extends MovieClip
{
public function drawCircle1(color:Number):void
{
graphics.beginFill(color);
graphics.drawCircle(100,100,40);
graphics.endFill();
}
}
}
生成的 swf 稱為 draw.swf。
我有另一個名為 test.fla 的 fla。
以下是主時間線上第一幀的代碼。
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Loader;
var swfLoader = new Loader();
var color:Number;
color = Math.round(Math.random()*0xFFFFFF);
var urlReq:URLRequest = new URLRequest("draw.swf");
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadComplete);
swfLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, swfLoadError);
swfLoader.load(urlReq);
function swfLoadComplete(evt:Event):void
{
var loader:Loader = Loader(evt.target.loader);
addChild(loader.content);
swfLoader.removeEventListener(Event.COMPLETE, swfLoadComplete);
}
function swfLoadError(evt:IOErrorEvent):void
{
trace("Unable to load swf ");
swfLoader.removeEventListener(IOErrorEvent.IO_ERROR, swfLoadError);
}
如您所見,我已將 dwaw.swf 加載到 test.swf 中。 無論如何我可以從test.fla訪問draw的drawCircle1 function。 實際上我需要在訪問這個 function 時將值顏色作為參數傳遞。
如果我沒記錯的話,一旦加載器完成,您可以簡單地制作 MovieClip(loader.content).drawCircle1(0xFF0000);。
Loader.content 應該是 class 和 function 可以使用方括號語法按名稱調用:
function swfLoadComplete(evt:Event):void
{
var loader:Loader = Loader(evt.target.loader);
addChild(loader.content);
//trying to call function drawCircle1
loader.content["drawCircle1"](0xFF0000);
swfLoader.removeEventListener(Event.COMPLETE, swfLoadComplete);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.