Загрузка внешнего SWF с эталоном в классе - PullRequest
1 голос
/ 17 ноября 2011

Я не могу загрузить force.swf (предположим, я не могу отредактировать его, поскольку у меня нет исходного кода) через внешний SWF из-за ссылки на Stage в базовом классе.

Как бы я мог загрузить его (и любой другой возможный SWF) без ошибок?

Вот ссылка на проблему, которую я пытаюсь исправить:

http://www.mediafire.com/?9d9qay8a6xj7836

Спасибо.

1 Ответ

0 голосов
/ 17 ноября 2011

Если вы используете загруженные SWF и хотите, чтобы они использовали сцену, сначала их нужно добавить на сцену (не так, как SWF по умолчанию появляется со сценой).

, поэтому вам нужно использовать что-то вроде этого:

public function YOURCLASS()
{
    // at this point if the swf is externally loaded, it is only in the memory
    // but not on stage. you can "trace ( stage )" it will give you NULL

    // you need to listen to the event when the object was added on stage.
    addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage);
}

private function handleAddedToStage(e:Event):void
{
    removeEventListener(Event.ADDED_TO_STAGE, handleAddedToStage);
    // now the object is added on the stage, and you can refer the stage parameter
    // "trace ( stage )" it will give you [Stage]
}

надеюсь, это поможет.

UPDATE

Теоретически это должно быть возможно так:

из SWF вам нужно создать файл SWC (это теоретическая часть решения)

тогда у вас есть NewClass, который расширяет класс Constructor, и вы не вызываете super ();

... до сих пор я не знаю, каковы шансы для создания SWC из SWF ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...