PDA

Просмотр полной версии : Дублирование мувиков из одного слоя в другой


hwait
20.05.2002, 15:37
Здравствуйте, уважаемые!

Значит, описание проблемы:
Существует флешевое меню выбора игр, после выбора игра подгружается LoadMovieNum'ом в другой слой.
Также ряд игр использует сходный контент (ряд клипов), которые не хотелось бы подгружать каждый раз, а хотелось бы дублировать с уровня меню на уровень игры. Что-то не получается. Прочитал в O'Reilly "ActionScript" что это вроде невозможно. Но, может, механизм какой есть?

asd
20.05.2002, 15:55
attacheMovie

hwait
20.05.2002, 19:50
нет, я знаю что такое attachMovie, если бы это работало, не писал бы. Тут какое дело:
подгружаем внешний .swf на _level3 скажем. Теперь для attachMovie доступна лишь библиотека подгруженного мувика. Не старого что лежит на _level0, а нового. Как добраться до экспортированных клипов _level0 из _levelN?
Тут даже просто сдублировать невидимый клип из _level0 в _level3 не выходит, а ты attachMovie советуешь...

asd
20.05.2002, 20:07
сдублировать можно только туда, где лежит оригинал. - а грузить можно и в муви - туда же и аттачить

hwait
20.05.2002, 21:14
ну не знаю, может я совсем уж дурак. Проверил сейчас третий раз, не работает.
как проверял -
на _level2 делаю

function go () {
_level3.cb.attachMovie("tt", 1500);
}

далее из _level3 вызываю когда нужно
_level2.go();

tt сэкспортирован в библиотеке того мувике, который грузится в _level2, это просто зеленый квадрат.
cb присутствует на _level0 физически

трассировка показывает что go () работает нормально. Формат у всех мувиков player 5.
cb после проверки объектов пуст. увы.

asd
20.05.2002, 21:32
а я те и грю - грузи не loadMovieNum("aa.swf", 1);; - а mov.loadMovie("aa.swf"); в какой -инть контейнер, и туда аттач mov.eee.attachMovie("vvv0", "vvv", 44);
- я ваще обхожусь без _level ..... но это мое мнение

Nox Noctis
20.05.2002, 21:51
тебе что нужно ?
сдублировать загруженный мувик ?
ну, вставь все содержимое самого загружаемого мувика в один контейнер, а после лоадМуви (или лоадМувиНум - принципиально нет разницы) - дублируй этот контейнер _внутри_ загруженного мувика... то есть чтбы все дубликации происходили в пределах одного свф... и все - все сдублируется... нужно вынести вперед - используй свапДепс... чего еще-то ? :)

или я тебя не так понял ?

hwait
20.05.2002, 23:11
2asd я полностью согласен с тобой насчет _level'ов, я использую тоже один.
Но у меня данность. Есть index.swf, который грузит menu.swf во 2-й уровень, из которого можем грузить различные игры в 3-й уровень.
mov.eee.attachMovie("vvv0", "vvv", 44); будет работать только для библиотеки aa.swf, не так ли?
если бы все было в пределах одного .swf'ника, как говорит Nox Noctis, то без проблем. Но их несколько. и swapDepth работает для одного _level'а, внутри можно тасовать мувики как угодно, но перекинуть из одного _level'а в другой нельзя.
Если бы я писал всю эту байду с чем счас копаюсь, то конечно все делал бы на одном уровне в одной сцене. А так сейчас куча слоев, сцен, кадров и разгребай это. Переписать времени нет, сроки не те назначены. А чтоб соптимизировать хоть как-то.
2Nox Noctis: у меня есть 20 игр, 10 из которых карточные. Все они подгружаются по механизму описанному выше. В каждой их них имеется свой набор карт, весом около 50 к. Хочу: вынести набор карт одним мувиком за пределы этих 10 игр, в какой-нибудь .swf'ник, чтобы грузилось все один раз. А потом просто аттачить или дублировать его в начало каждой карточной игры. Повторяю, что с одним уровнем все заработает, но моя ситуация с тремя уровнями. С тремя различными .swf'никами в них. И attachMovie() аттачит только клипы из библиотеки целевого .swf'ника, не родительского. Вопрос: можно ли как-либо передать клип из библиотеки одного подгруженного .swf'ника в другой подгруженный .swf'ник либо как-то сдублировать/передать имеющийся мувик на другой уровень в подгруженный туда .swf'ник. Уф-ф-ф, надеюсь что объяснил:)