Flash / ActionScript 3:从加载的文档类引用加载器文档类

时间:2011-05-07 08:02:37

标签: actionscript-3

我有一个FLA(比如Main.FLA)文档类,在舞台上有一个子MovieClip:进入子MovieClip我想加载其他swf文件:每个文件都包含自己的Document Class(每个swf都有点独立申请,说测验等等)。出于某种原因,我必须使用MAIN文档类来存储加载到主FLA中的子swfs的数据。我如何引用Main类?我找不到办法...

1 个答案:

答案 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);