PDA

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


Alonce
25.01.2010, 20:29
Собственно нужно сделать копию мувика, в который загружена картинка.
делаю так:

import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.filters.ColorMatrixFilter;

this.createEmptyMovieClip("mc_mc",this.getNextHighestDepth());
mc_mc._x =480;
mc_mc._y =330;
mc_mc.loadMovie("4i.jpg");
this.createEmptyMovieClip("photoContainer", this.getNextHighestDepth());
var btD:BitmapData = new BitmapData(70, 70, false, 0x00C2D6E1);
photoContainer.attachBitmap(btD,this.getNextHighestDepth());
btD.draw(mc_mc, new Matrix(), null, "normal", null, true);


но не работает. Что не правильно?

udaaff
25.01.2010, 20:49
Надо дождаться сначала окончания загрузки. MovieClipLoader в помощь.

mooncar
25.01.2010, 20:49
Все неправильно.
Нужно использовать MovieClipLoader и соблюсти последовательность работы с битмапой.
По событию onLoadInit сделать draw с загруженного картинкой контейнера.
Примерно так:
import flash.display.BitmapData;

var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
loader.addListener (listener);
loader.onLoadInit = function (target_mc:MovieClip) { //target_mc - это внутренни аргумент функции, указывает на мувик container
var img:BitmapData = new BitmapData(target_mc._width, target_mc._height, false);
img.draw (target_mc);
copy_mc.attachBitmap (img, 0, 'auto', true);

//далее нужны действия по скрытию оригинала, если нужно и изменении свойств копии
//все делается либо тут, либо отсюда стартуется нужная функция
// target_mc._visible = false; либо target_mc.unloadMovie();
// copy_mc._x = ....
//copy_mc._y = ....
//setProperties (copy_mc);

};

this.createEmptyMovieClip ('copy_mc', this.getNextHighestDepth());
loader.loadClip ('fileUrl', container);

Alonce
25.01.2010, 21:01
спасибо, разобрался