Flash: .as против .fla - loaderInfo.loader - PullRequest
0 голосов
/ 04 марта 2009

У меня есть этот код, который работает из файла .as

if (loaderInfo.loader)
    loaderInfo.loader.dispatchEvent(new Event("pageFinish", true));

Затем я помещаю приведенный выше код в файл .fla (другой существующий файл Flash), но (loaderInfo.loader) всегда возвращает false, даже если он загружен из другого SWF-файла. Следовательно, событие никогда не отправляется.

Edit: Я постараюсь объяснить это немного подробнее.

Это работает:
container.swf - (загружает) -> page1.swf (page1.fla + page1.as)
page1.swf отправляет событие в container.swf

Это не работает:
container.swf - (загружает) -> page2.swf (page2.fla)
page2.swf отправляет событие, потому что loaderInfo.loader возвращает здесь false

В обоих случаях нет никаких изменений в файле container.swf, только изменился XML-файл, чтобы он указывал либо на page1.swf, либо на page2.swf

Ответы [ 2 ]

1 голос
/ 04 марта 2009

Не смог проверить это, но только из головы:

Убедитесь, что у загруженного SWF есть права доступа к загрузчику (LoaderContext, ApplicationDomain и т. Д.).

Вы можете проверить это, написав это в загруженном клипе:

trace(loaderInfo.childAllowsParent);
trace(loaderInfo.ParentAllowsChild);
trace(loaderInfo.sameDomain);

Если один из этих следов вернет false, сообщите нам ...

Убедитесь, что ваш документ полностью создан, когда вы пытаетесь получить доступ к его загрузчику.

loaderInfo.addEventListener(Event.INIT, eventComplete);
loaderInfo.addEventListener(Event.COMPLETE, eventComplete);

function eventComplete(event:Event):void
{
    trace(event.target.loader);
}
0 голосов
/ 04 марта 2009

loaderInfo используется, если SWF загружается через объект Loader. Если этот скомпилированный fla swf загружается через Loader, loaderInfo.loader не вернет false

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