Как найти положение X, Y объекта во внешнем swf

У меня есть SWF-приложение (A) с зеленым объектом, который перемещается по осям X и Y, это SWF-приложение работает только со своим загрузчиком SWF (B).

Я создал еще один загрузчик SWF (C), который загружает загрузчик SWF (B). Я хочу знать, можно ли получить экземпляр этого зеленого объекта и его свойства.

Или сделать функцию для поиска этого зеленого цвета на сцене и возврата позиции X, Y с помощью метода getPixels()?


person Benyamin_199x    schedule 07.04.2014    source источник


Ответы (1)


Нет, вы не должны использовать getPixels, это будет излишеством для такой задачи. На самом деле Loader имеет content свойство:

Содержит корневой экранный объект SWF-файла или файла изображения (JPG, PNG или GIF), который был загружен с помощью методов load() или loadBytes().

Вы сможете получить желаемый зеленый объект, просто работая над списком отображения и понимая, что вы делаете после загрузки компонента. Если вы добавляете 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));
person Nicolas Siver    schedule 07.04.2014
comment
Привет, Николас, мне нужна дополнительная помощь по второму методу, я не уверен, следует ли мне использовать _root или что-то в этом роде. Это ссылка на загрузчик B 1371.ca/t1.swf, к сожалению, вам нужно войти и перейти к дальности стрельбы, мне нужно положение X и Y зеленого танка. Каков наилучший подход? Я так благодарен за вашу помощь. - person Benyamin_199x; 10.04.2014