PDA

Просмотр полной версии : Скопировать клип с анимацией, загруженный из swf-файла


Ляксей
27.05.2008, 15:04
Люди, как скопировать клип со всей внутренней анимацией, загруженный из внешнего swf-файла?
Duplicate для этого н подходит, так как он не копирует загруженные извне клипы.
Может как-то покадрово это можно сделать.
Если анимации нету, то вполне подходит ф-я типа

//-----------------------------------------------------------------------------------------------------------------------
// создать копию клипа шаблона и приаттачить её к parent_clip
function AttachCopyOfTempl(templ_name:String,dest_name:String,parent_clip:MovieClip):MovieClip
{

var src_clip:MovieClip = m_templ_clip_ar[templ_name];

var bitmap_data:BitmapData = new BitmapData(src_clip._width, src_clip._height,true,0x000000);


var matrix:Matrix = new Matrix();
var color_transform:ColorTransform = new ColorTransform();
var blend_mode:String = "normal";

var rect:Rectangle = new Rectangle(0, 0, src_clip._width, src_clip._height);
var smooth:Boolean = false;

bitmap_data.draw(src_clip,matrix,color_transform,blend_mode,rect,smooth);


var res_clip:MovieClip = parent_clip.createEmptyMovieClip(dest_name,parent_clip.getNextHighestDepth());
res_clip.attachBitmap(bitmap_data,0);
return res_clip;


}

Psycho Tiger
27.05.2008, 15:28
Duplicate не подходит?
То есть, по вашему я не могу поставить муви клип на сцену с именем mymc и сделать вот это?

var mc:MovieClip=duplicateMovieClip(mymc,"mc",2); //чуток забыл синтаксис, но суть ясна
mc._x+=200;

Ляксей
27.05.2008, 15:37
Вот цитата из хелпа
duplicateMovieClip (MovieClip.duplicateMovieClip method) ...
...
If you used MovieClip.loadMovie() or the MovieClipLoader class to load a movie clip, the contents of the SWF file are not duplicated. This means that you cannot save bandwidth by loading a JPEG, GIF, PNG, or SWF file and then duplicating the movie clip.

Psycho Tiger
27.05.2008, 15:50
Все, умолк...
Тогда 2 вариант:
1) используем ас3
2) анимацию делаем как отдельный свф, который подгружаем в подгружаймый, и когда нужно дублировать подгружаем и в главный. Кстати, помоему подобная тема обсуждалась, только я найти не могу...

Alex_beginner
27.05.2008, 19:09
Предлагаю глузить один и тот же swf в различные контейнеры - получим дубликаты.

iNils
27.05.2008, 19:16
Дублировать в AS1/AS2 нельзя. Можно аттачить из библиотеки, но и то, только используя SharedLibrary. Поэтому использовать произвольно загруженный клип нельзя, все имена должны быть заранее известны.

С загрузкой можно, но не все так просто. Для любых внутренних манипуляций надо дожидаться загрузки из кеша.

Ляксей
28.05.2008, 13:54
...
С загрузкой можно, но не все так просто. Для любых внутренних манипуляций надо дожидаться загрузки из кеша.
Так всё же, как скопировать загруженный извне клип с анимацией?

chingachgoog
28.05.2008, 14:20
Так всё же, как скопировать загруженный извне клип с анимацией?


Вам же сказали самый простой и быстрый способ - загрузить его еще раз.
Это конечно не будет мгновенно как дублирование или аттач, но за счет кэша - на глаз не заметно.

Psycho Tiger
28.05.2008, 14:21
Так всё же, как скопировать загруженный извне клип с анимацией?
На ас1/ас2 нельзя.
С загрузкой можно, но не все так просто. Для любых внутренних манипуляций надо дожидаться загрузки из кеша.
5-6 мс не критично :)

Ляксей
28.05.2008, 21:40
Вам же сказали самый простой и быстрый способ - загрузить его еще раз.
Это конечно не будет мгновенно как дублирование или аттач, но за счет кэша - на глаз не заметно.
Ага, вот теперь понял :) ну если закешируется - то это другое дело - попробую так