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
关于Flash ActionScript3.0加载json数据问题