Я конвертирую все операторы вставки в мой сайт с ленивой загрузкой.Код, который раньше был таким:
[Embed(source="/newswf.swf", symbol="kungfu")]
public static var Kungfu:Class;
, теперь преобразован в эту форму:
private var _loader:Loader = new Loader();
public static var abcd:Class = null;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgressHandler);
_loader.load(new URLRequest("newswf.swf"));
private function onLoadComplete(evt:*):void
{
abcd = evt.target.applicationDomain.getDefinition("kungfu") as Class;
dispatchEvent(new MyEvent(MyEvent.LOADING_DONE));
}
Функции, использующие abcd
, будут вызываться при получении MyEvent.LOADING_DONE
event.
Теперь моя проблема в том, что когда класс использует символ и имеет определение класса, я не могу реализовать его с помощью вышеуказанного метода, потому что конструктор будет вызываться немедленно и не будетслушайте прослушиватель событий onLoadComplete
.
[Embed(source="/newswf.swf", symbol="judo")]
public class Judo extends MovieClip
{
public function Judo()
{
super(...);
}
}
Когда я помещаю код в конструктор в отдельную функцию и вызываю его в методе onLoadComplete
, я получаю сообщение об ошибке, поскольку метод super
изначальноиспользовался в конструкторе, и его нельзя использовать вне конструктора.
Может ли кто-нибудь подсказать мне, как в этом случае выполнять ленивую загрузку?
Заранее спасибо:)