Загрузка as3 в as2 работает только на _root - PullRequest
0 голосов
/ 26 марта 2012

я сделал простой тестовый пример в as2.Он содержит две кнопки со следующими обработчиками.

_root:

on (release)
{
    this.loadMovie("AS3.swf");      
}

_root.test.testmc:

on (release)
{
    test.testmc.loadMovie("AS3.swf");       
}

AS3.swf является видеопроигрывателем (используя youtube as3 api).Если я загружаю его в _root, он работает, но если я хочу загрузить его в любое другое место, это не так.Я искал и нашел это из Adobe:

"SWF-файлы, написанные в ActionScript 1.0 или 2.0, не могут загружать SWF-файлы, написанные в ActionScript 3.0. Это означает, что SWF-файлы созданы в Flash 8 или Flex Builder 1.5 или более ранней версииверсии не могут загружать SWF-файлы ActionScript 3.0.

Единственным исключением из этого правила является то, что SWF-файл ActionScript 2.0 может заменить себя SWF-файлом ActionScript 3.0, если SWF-файл ActionScript 2.0 ранее не загружался.что-нибудь на любом из его уровней. SWF-файл ActionScript 2.0 может сделать это посредством вызова loadMovieNum (), передав значение 0 параметру уровня. "

Является ли" _root часть "мой код работает из-за вышеупомянутого "правила исключения"?Я новичок во флэш (да, вы могли бы спросить, почему я начал с as2, к сожалению, не мой выбор ...), и мне интересно, правильно ли я думаю.Также, если есть какой-то способ обхода (кроме переписывания всего в AS3), дайте мне знать (возможно использование localconnection?).

1 Ответ

0 голосов
/ 26 марта 2012

Попробуйте это:

в корне as2:

test.testmc.loadMovie("AS3.swf");

или в MC вы хотите, чтобы игрок as3:

this.loadMovie("AS3.swf");

Ваш второй код вызываетtest.testmc.test.testmc потому что он уже помещен в "testmc", поэтому вам не нужно ссылаться на него с полным путем.Для таких вещей рекомендуется использовать относительные пути.

Итак, внутри mc testmc вам просто нужно сделать this.loadmovie вместо поиска test.testmc INSIDE testmc.

Надеюсь, это было то, что вы ищете.

...