首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ID从主swf传递给子swf

将ID从主swf传递给子swf
EN

Stack Overflow用户
提问于 2009-10-13 13:17:03
回答 1查看 304关注 0票数 0

我有一个主要的影片剪辑,加载适当的swfs的基础上的按钮点击。按钮和相应的swfs是通过XML加载的。我采用的方法可以在这里找到:Sample Code

现在,这似乎工作得很好。但是,我的问题是,不是为每次单击按钮调用一个单独的SWF,我希望维护一个通用的SWF,并只更改适当的XML内容,使其更具动态性。

这就是我陷入困境的地方,我决定为xml上的每个按钮添加一个ID,并将其传递给Common SWF (子swf),这样我就可以根据ID加载相应的XML内容,而不是为每次单击按钮调用单独的swf。XML现在看起来像这样:

代码语言:javascript
复制
<?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方面的专家,我每天都在学习。所以,如果有人能帮我解决这个问题,我会非常感激。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2009-10-13 14:59:47

SWF-Button必须实现id属性的setter函数。此方法可以引用读取点击的Loader-SWF方法。

示例:

代码语言:javascript
复制
//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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1560197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档