如何在外部swf中找到对象的X,Y位置

时间:2014-04-07 08:00:25

标签: actionscript-3 flash swfloader getpixel

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

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

或者在舞台上搜索绿色并使用getPixels()方法返回X,Y位置?

1 个答案:

答案 0 :(得分: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生成事件并在加载程序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));