0

我有一个 SWF 应用程序 (A),它有一个在 X 轴和 Y 轴上移动的绿色对象,这个 SWF 应用程序只运行它的 SWF 加载程序 (B)。

我创建了另一个加载 SWF 加载器 (B) 的 SWF 加载器 (C)。我想知道是否可以获得该绿色对象的实例及其属性。

或者制作一个函数来搜索舞台上的绿色并使用该getPixels()方法返回X,Y位置?

4

1 回答 1

0

不,您不应该使用getPixels它来完成此类任务。实际上Loadercontent属性:

包含使用 load() 或 loadBytes() 方法加载的 SWF 文件或图像(JPG、PNG 或 GIF)文件的根显示对象。

您将能够通过简单地操作显示列表来获得所需的绿色对象,并了解加载组件后您在做什么。如果content在每次加载操作后添加到显示列表(例如:addChild(loader.content));例如,您的绿色对象在完全加载后具有名称(例如:'greenLantern'),您将能够获得它的参考:

//After full loading, Code in loader C
var containerB: DisplayObjectContainer = getChildAt(0) as DisplayObjectContainer;
var appA: DisplayObjectContainer = containerB.getChildAt(0) as DisplayObjectContainer;
var greenLantern: DisplayObject = appA.getChildByName("greenLantern");

trace(greenLantern.magicProperty1, greenLantern.x, greenLantern.y);

另一种方法是事件冒泡。您可以从应用程序生成事件A并在 loader 中监听它C

//Loader C
addEventListener("greenLanternHere", onGreenLanternEvent);
function onGreenLanternEvent(e:Event):void {
    //Heeeellooooo moving green object
    trace(e.target);
}

//Application A
greenLanternInstance.dispatchEvent(new Event("greenLanternHere", true));
于 2014-04-07T17:46:24.933 回答