我有一个FLA(比如Main.FLA)文档类,在舞台上有一个子MovieClip:进入子MovieClip我想加载其他swf文件:每个文件都包含自己的Document Class(每个swf都有点独立申请,说测验等等)。出于某种原因,我必须使用MAIN文档类来存储加载到主FLA中的子swfs的数据。我如何引用Main类?我找不到办法...
答案 0 :(得分:0)
当我做类似的事情时,我使用了事件。 我创建了一个类:
package {
import flash.events.Event;
public class QuestionAnsweredEvent extends Event {
public static const QUESTION_ANSWERED:String = "QuestionAnswered";
public var data:*;
public function QuestionAnsweredEvent(type:String, data:*) {
this.data = data;
super(type, true);
}
}
}
然后在子SWF中我发送此事件:
dispatchEvent(new QuestionAnsweredEvent(QuestionAnsweredEvent.QUESTION_ANSWERED, questionData));
在Parent SWF中,我添加了一个标准的事件监听器,但在函数内部我可以获取event.data属性来存储发送的数据。
希望有所帮助。我自己比较陌生,但在我的项目中效果很好。
编辑: 在你的主要课程中:
swfmovieclip.addEventListener(QuestionAnsweredEvent.QUESTION_ANSWERED,onAnswer);
private function onAnswer(e:QuestionAnsweredEvent):void {
storingVar = e.data; //this can change depending on the type of object you send
}
EDIT2: 这是我加载调度包含数据的事件的SWF的方法:
var ldr:Loader = new Loader();
ldr.load(new URLRequest("RegionalQuestions.swf"));
ldr.addEventListener(QuestionAnsweredEvent.QUESTION_ANSWERED, questionAnswered);
questionsSWF = ldr;
addChild(ldr);