PDA

Просмотр полной версии : Flash8, работа с BitmapData


NewMan_by
02.03.2006, 14:51
Поскажите как произвести следующую операцию:
Погрузить внешнюю картинку в объект BitmapData.
Я пока дошел только до того, что можно сделать mcLoader.loadClip, потом содержимое клипа с картинкой с помощью BitmapData.draw загоняем в объект BitmapData.

Вопрос, а проще можно?

Reijii
02.03.2006, 14:54
var bitmapData:BitmapData = BitmapData.loadBitmap(bitmap);

NewMan_by
02.03.2006, 15:09
На сколько я знаю этот способ позволяет погружать только картинки из библиотеки! А надо с диска(внешнюю)!

seifip
02.03.2006, 15:41
http://www.actionscript.com/Article/tabid/54/ArticleID/flash-file-upload-application/Default.aspx

AxelRB
02.03.2006, 16:39
http://www.actionscript.com/Article/tabid/54/ArticleID/flash-file-upload-application/Default.aspx
...насколько я понял это вообще не то!
1) они делают банальный loadMovie, а проблема в загрузке в BitmapData.
2) там обсуждается проблема обмена данными между свф файлами, совсем не это.

m@rio
02.03.2006, 17:39
Посмотри сдесь модет подойдет вроде подгрузка идет с диска
http://www.asfusion.com/blog/entry/attachbitmap-y-loadbitmap-en-flash-8

NewMan_by
02.03.2006, 20:33
Хотя на писано на испанском, а может и нет, не важно, я понял одно...
Как я уже и говорил loadBitmap подгружает только из библиотеки, а то что я написал в посте работает....То есть сначала loadClip, потом draw.

breez38
03.03.2006, 11:49
to NewMan_by
Да ты прав.

Сначала грузим внешнюю картинку с помощью loadclip, а затем "рисуем" ее в BitmapData при помощи draw(). После этого тот клип, в который грузили картинку можно удалить через removeMovieClip. В дальнейнем BitmapData можно аттачить при помощи attachBitmap(...)

Если подумать, то мы получаем достаточно неплохой механизм повторного использования картинок, которые чясто повторяются. Теперь не надо каждый раз "тянуть" их с сервака, можно "закешировать".

Также BitmapData предоставляет доступ к пикселям изображения, на него можно накладывать фильтры.

Exey
22.07.2006, 10:49
import flash.display.BitmapData;

function init()
{
createEmptyMovieClip("image_mc", 0);
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
mcl.loadClip("infocom19.jpg", image_mc);
}

function onLoadInit(target)
{
var width:Number = image_mc._width;
var height:Number = image_mc._height;
var myBitmapData:BitmapData = new BitmapData(width, height);
myBitmapData.draw(image_mc);
}

init()


оригинал: http://chattyfig.figleaf.com/pipermail/flashcoders/2006-March/161447.html

Sh@man
22.07.2006, 14:10
function loadBitmapSmoothed(url:String, target:MovieClip)
{

var bmc:MovieClip = target.createEmptyMovieClip("bmc", target.getNextHighestDepth());

var listener:Object = new Object();

listener.tmc = target;

listener.onLoadInit = function(mc:MovieClip)
{
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);

this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(), "auto", true);

bitmap.draw(mc);

};

var loader:MovieClipLoader = new MovieClipLoader();

loader.addListener(listener);

loader.loadClip(url, bmc);
}