我有一个主要的影片剪辑,加载适当的swfs的基础上的按钮点击。按钮和相应的swfs是通过XML加载的。我采用的方法可以在这里找到:Sample Code
现在,这似乎工作得很好。但是,我的问题是,不是为每次单击按钮调用一个单独的SWF,我希望维护一个通用的SWF,并只更改适当的XML内容,使其更具动态性。
这就是我陷入困境的地方,我决定为xml上的每个按钮添加一个ID,并将其传递给Common SWF (子swf),这样我就可以根据ID加载相应的XML内容,而不是为每次单击按钮调用单独的swf。XML现在看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<menu>
<item>
<label>Gallery1</label>
<url><![CDATA[swf/gallery.swf]]></url>
<id>01</id>
</item>
<item>
<label>Gallery2</label>
<url><![CDATA[swf/gallery.swf]]></url>
<id>02</id>
</item>
</menu>现在,我可以推送这个ID,也可以在主影片剪辑上跟踪它,但不知道如何将它传递给Common/Child SWF。我不是AS3方面的专家,我每天都在学习。所以,如果有人能帮我解决这个问题,我会非常感激。提前谢谢。
发布于 2009-10-13 14:59:47
SWF-Button必须实现id属性的setter函数。此方法可以引用读取点击的Loader-SWF方法。
示例:
//LOADER-SWF
// loader code:
Loader.load(urlReference);
// ... //
//in load/add to stage event
var child:IChild = Loader.content;
child.setID(1, clickFunction);
//IChild.as
//Interface
public interface IChild {
function method setID(id:uint, callBack:Function):void;
}
//BUTTON.swf
//implement IChild
private var _id:uint;
private var _callBack:Function;
// ... //
public function method setID(id:uint, callBack:Function):void{
_id=id;
_callBack=callBack;
}
// ... //
private function onClick(e:MouseEvent):void{
_callBack(_id);
}https://stackoverflow.com/questions/1560197
复制相似问题