Показать сообщение отдельно
Старый 07.03.2012, 09:02
LanSelven вне форума Посмотреть профиль Отправить личное сообщение для LanSelven Найти все сообщения от LanSelven
  № 1  
Ответить с цитированием
LanSelven
 
Аватар для LanSelven

Регистрация: Aug 2009
Сообщений: 101
По умолчанию BitmapData не работает в браузере

Написал функцию копирования мувика через BitmapData:
Код AS1/AS2:
import flash.display.BitmapData;
function duplicateMC(mc:MovieClip,mc2:String,Level:MovieClip,mcx,mcy) {
        if (Level==undefined) Level = _root;
        mcBMP = new BitmapData(mc._width, mc._height, true, 0x0FFFFFF);
        mcBMP.draw(mc);
        Level.createEmptyMovieClip(mc2, Level.getNextHighestDepth());
        Level[mc2].attachBitmap(mcBMP,Level.getNextHighestDepth());
        Level[mc2]._x = mcx;
        Level[mc2]._y = mcy;
}
Кстати, между делом. Как задавать значение параметров по умолчанию у функции?

Так вот. С копированием обычных мутиков все как надо. А вот с копированием мувиков, которые представляют собой загруженные картинки из вне, возникают проблемы. Причем настоящая мистика. Все хорошо работает, когда просматриваю в самом редакторе Flash. Но не работает в браузере.

Между делом вот так выглядит загрузка картинки и запихивание в мувик, который в дальнейшем будем копировать.
Код AS1/AS2:
var movieClipLoader:MovieClipLoader = new MovieClipLoader();
var obj:Object = new Object();
obj.onLoadInit = function(target:MovieClip) {
	_root.nextFrame(); //Загрузка как бы завершенна и можно идти дальше.
};
movieClipLoader.addListener(obj);
_root.createEmptyMovieClip("lib", _root.getNextHighestDepth()); //создаем мувик-библиотеку, где будут храниться загруженные картинки
lib._visible = false; //делаем ее невидимой
_root.lib.createEmptyMovieClip("newImage", _root.lib.getNextHighestDepth()); //создаем контейнер для картинки
movieClipLoader.loadClip("http://i.imgur.com/VzARL.jpg", _root.lib.newImage); //стартуем загрузку
А вот так в следующем кадре вызывается функция:
Код AS1/AS2:
duplicateMC(_root.lib.newImage,"b",_root,0,0);
*Не работает во всех браузерах

Флешка в браузере добавляется вот так:
Код:
var params = {wmode:'transparent', scale:'scale', loop:'false', menu:'false',flashvars:""};
swfobject.embedSWF('/flash/wtf.swf','swf', 550, 400, '8.0.0',{},{},params,{});
__________________
Кто к нам с мечом придет, тот появиться на респауне уже без меча.