![]() |
duplicateMovieClip() для клипа с содержимым, созданным программно
Создаю я клип. Помещаю в него содержимое при помощи attachMovie. Потом пытаюсь дублировать этот клип при помощи duplicateMovieClip. И что я вижу: клип продублировался, только вот без его содержимого.
Если описал не очень понятно, то вот пример: Код:
_root.createEmptyMovieClip("clip1", 0); |
помоему только в 8ке, и то неверен, но в раньших точно нельзя никак :-(
|
Очевидно DuplicateMovieClip - всех внутренних приатачченных элементов =)
|
Такой вот изврат -
this.createEmptyMovieClip('clip1', 1); function vl_cl(targ) { targ.attachMovie('linkage', 'vlog_cl', 1, {_x:200, _y:100}); } vl_cl(this.clip1); this.clip1.duplicateMovieClip('clip2', 1); vl_cl(this.clip2); trace(this.clip2.vlog_cl._x); |
Штрек, интересное дело, во первых, я не вижу что б клип дублировался, а во вторых, если я в конце твоего скрипта ставлю:
trace(this.clip1.vlog_cl._x+" "+this.clip2.vlog_cl._x); то выводится вообще:"undefined 200" |
не парься, 7ка не позваляет дублировать подгруженные клипы :-)
|
такое решение - незнаю будет ли работать(не проверял но думаю что будет работать), но
во первых когда атачим мувики делаем так _mc.this.attachMovieClip('linkName','mc',dpth,{_linkagename:'linkName'}) //_linkagename:'linkName' - каждый мувик знает из какого клипа библиотеки он создан. ................ //потом наш код в котором мы атачим ........... //теперь нужно дублировать наш мувик, мы это делаем так: this.mc.duplicateMovieClip(mc1,depth); duplicateContent(mc,mc1); где функция duplicateContent(); выглядит так function duplicateContent(_mc:MovieClip,_mc1:MovieClip){ for (i in _mc){ if (_mc[i]=='MovieClip'){ //присоеденяем мувик из библиотеки с настроиками того который копируем dupl_mc=_mc1.attachMovie(_mc[i].linkName,_mc[i]._name,_mc[i].getDepth()) //--------------и копируем все настройки вложеного мувика --------- for (j in _mc[i]){ if ((_mc[i][j]=='MovieClip') duplicateContent(_mc[i][j], dupl_mc[j]) //если есть вложеные мувики то копируем и их, короче полная рекурсия , будем копировать вложеные мувики до опупения ну или до 255 если мне не изменяет память%)) else dupl_mc[j] = _mc[i][j]; } //-------------- } } } надеюсь мой полет мысли понятен? я думаю это можно и более красиво реализовать %)) ну нету времени на большее, если кто сделает то киньте код здесь %)) |
Цитата:
|
Вложений: 1
Цитата:
Нет слов. Ну добавь ещё пару параметров - this.createEmptyMovieClip('clip1', 1); function vl_cl(targ,x,y) { targ.attachMovie('linkage', 'vlog_cl', 1, {_x:x, _y:y}); } vl_cl(this.clip1,200,100); this.clip1.duplicateMovieClip('clip2', 1); vl_cl(this.clip2,300,200); trace(this.clip2.vlog_cl._x); |
Штрек, разницы нет. В твоем коде ничего не дублируется. Если я в конце твоего кода вывожу:
trace(this.clip1.vlog_cl._x+" "+this.clip2.vlog_cl._x); То выводится точно так же: "undefined 300" Код от __i пока ещё не проверял |
| Часовой пояс GMT +4, время: 10:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.