PDA

Просмотр полной версии : Работа с внешним swf файлом


NAO111
17.10.2011, 20:54
Есть внешний swf со свойствами и методами. Мне надо его загрузить и иметь возможность юзать эти свойства и методы.
Делаю так:
loader = new Loader();
loader.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("recipient.swf"));
}

private function onLoadComplete(e:Event):void
{
trace(loader.content.variable1);
loader.content.traceAString();
}
Ругается на неизвестные ему свойство и метод variable1 и traceAString();
Что не так?

goodguy
17.10.2011, 20:59
Ругается на неизвестные ему свойство и метод variable1 и traceAString();
А они ему известны?
Нужно привести загруженный контент к нужному типу.
Если это, например, CustomClass, то нужно сделать так:

trace((loader.content as CustomClass).variable1);


Но я обычно юзаю для таких целей интерфейсы

+ Разрешить загружающему файлу доступ к загружаемому, через Security.allowDomain("*"); (для всех доменов, в данном случае)

NAO111
17.10.2011, 21:13
Возможно я неправильно выразился... Мне нужен вот такой вот прием:
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/system/Security.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6#allowDomain()

goodguy
17.10.2011, 21:24
Блин, сразу не заметил этого:

loader.addEventListener(Event.COMPLETE, onLoadComplete);

Обработчик тут вообще не должен срабатывать. Слушатель нужно добавлять не к самому объекту лодер, а так:

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);

NAO111
17.10.2011, 22:05
Так как же все-таки "прочесть" какое нить свойство загруженного swf? Я не имею ввиду стандартные свойства MovieClip'а, а динамическое свойство?

in4core
17.10.2011, 22:10
загруженный клип
class Main
....
public var jjj:int = 111; // читается

public function getDate():Date .... // читается

NAO111
17.10.2011, 22:12
Что для этого пишите в классе, который читает?

goodguy
17.10.2011, 22:14
Это не ответ? (http://www.flasher.ru/forum/showpost.php?p=1039884&postcount=2)
Все отлично читается.

NAO111
17.10.2011, 22:20
Ок Понял, спасибо! А если мне нужно достать символ из загруженной свфки, который находится в либе?