flash & Actionscript3 - 将对象传递给外部 swf

Posted

技术标签:

【中文标题】flash & Actionscript3 - 将对象传递给外部 swf【英文标题】:flash & Actionscript3 - passing objects to external swf 【发布时间】:2011-11-05 09:17:54 【问题描述】:

首先,我想对本周帮助我解决我遇到的一些闪存问题的所有人表示感谢。这是一个很大的帮助。

如果我的最后一个问题,现在我希望是什么

我有一个对象,叫做朋友,它包含 facebook 头像的 url,即

friends.friend1 = "http:// etc";

我有一个名为 master.swf 的 swf 文件,它通过 flashvars 传递创建对象的信息。

我需要获取对象或 flashvars 信息到外部加载的 swf,称为 pageOne.swf。

我已经看到并尝试了几种不同的方法,但现在似乎可以满足我的需要。

重要的是 pageOne.swf 在它被呈现到屏幕之前可以访问 flashvars/object,因为 object/flashvars 中的信息用于构造它。

我正在使用加载器类来加载 swf,将其转换为电影剪辑

任何人有任何想法如何解决上述问题?

代码示例:

master.swf

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

我需要将其传递给 pageOne.swf,或者使其可用

我如何加载外部 swf

function getFirstLevel()
    
my_Loader = new Loader();
my_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading2);
my_Loader.load(new URLRequest("pageOne.swf"));

function finishLoading2(loadEvent:Event) 
    my_loadedSwf = loadEvent.currentTarget.content as MovieClip;
    addChild(my_loadedSwf); 
    stage.addEventListener(Event.ENTER_FRAME, my_loadedSwf.enterFrameHandler);
    stage.addEventListener(KeyboardEvent.KEY_DOWN,  my_loadedSwf.myOnPress);
    stage.addEventListener(KeyboardEvent.KEY_UP, my_loadedSwf.myOnRelease);
    stage.focus = my_loadedSwf;

        
    

谢谢

【问题讨论】:

【参考方案1】:

要么将其附加到 url,然后通过 LoaderInfo.parameters 访问它,要么让两个 swf 共享访问同一个类定义并将其存储在那里。

第一个例子:

my_Loader.load(new URLRequest("pageOne.swf?friend1=..."));

然后,在 pageOne.swf 内部通过 loaderInfo.parameters 访问它:

this.loaderInfo.parameters.friend1

对于第二种情况(我实际上更喜欢这种情况),在 main.swf 中:

import shared.Model; // have a class which has a public static facebook url
                     // property, or have it be a Singleton with that property
                     // Obviously, the class name is only an example.
/* ... */

shared.Model.facebookURL = "..."

然后,在加载的 swf 中:

import shared.Model;
/* ... */
var url:String = shared.Model.facebookURL

【讨论】:

在 flash player 10.1+ 中,我不得不使用LoaderContext,因为这对我不起作用。只是需要牢记!

以上是关于flash & Actionscript3 - 将对象传递给外部 swf的主要内容,如果未能解决你的问题,请参考以下文章

使用 Actionscript3 将图片从 XML doc 导入 Flash

actionscript3/Flash中的半色调效果

关于Flash ActionScript3.0加载json数据问题

flash 内置类的位置

Actionscript 3 vs Haxe:为新的 Flash 项目选择哪个?

有啥理由在 Flash 中编辑 ActionScript 3 文件实际上不会编辑它?