使用此方法在另一个SWF中加载SWF: (此代码在main.swf中)
function loadImage(url:String):void {
imageLoader = new Loader();
imageLoader.load(new URLRequest(url));
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
loadImage("test1.swf");
function imageLoaded(e:Event):void {
MyMovieClip.addChild(imageLoader);
}
思考是test1.swf需要一个在加载器swf(main.swf)中的值,我该如何传递该值?谢谢!
答案 0 :(得分:1)
您可以为加载的SWF(test1.swf)创建一个类,您可以使用Document类分配该类。
在此类中,为需要传递给加载的SWF的值创建一个setter。
//Here the choice of Array is arbitrary & depends on what values
//you need to pass to the SWF...
private var _params:Array;
public function set params( value:Array ):void
{
_params = value;
}
然后在您的Main课程中,您可以执行以下操作:
//Assuming you'd like to pass a number of values...
function imageLoaded(e:Event):void {
var content:MovieClip = imageLoader.content as CustomClass;
content.params = [ value1 , value2... valueN];
MyMovieClip.addChild(content);
}
答案 1 :(得分:0)
您需要访问加载程序的内容才能执行此操作。在你的imageLoaded函数中执行此操作。
( e.target.content as Object ).someParam = "whatever";
需要考虑许多安全限制(这称为交叉脚本),但是如果从同一个域加载两个swfs,则应该没有问题。