Просмотр полной версии : Flash8, работа с BitmapData
NewMan_by
02.03.2006, 14:51
Поскажите как произвести следующую операцию:
Погрузить внешнюю картинку в объект BitmapData.
Я пока дошел только до того, что можно сделать mcLoader.loadClip, потом содержимое клипа с картинкой с помощью BitmapData.draw загоняем в объект BitmapData.
Вопрос, а проще можно?
var bitmapData:BitmapData = BitmapData.loadBitmap(bitmap);
NewMan_by
02.03.2006, 15:09
На сколько я знаю этот способ позволяет погружать только картинки из библиотеки! А надо с диска(внешнюю)!
http://www.actionscript.com/Article/tabid/54/ArticleID/flash-file-upload-application/Default.aspx
http://www.actionscript.com/Article/tabid/54/ArticleID/flash-file-upload-application/Default.aspx
...насколько я понял это вообще не то!
1) они делают банальный loadMovie, а проблема в загрузке в BitmapData.
2) там обсуждается проблема обмена данными между свф файлами, совсем не это.
Посмотри сдесь модет подойдет вроде подгрузка идет с диска
http://www.asfusion.com/blog/entry/attachbitmap-y-loadbitmap-en-flash-8
NewMan_by
02.03.2006, 20:33
Хотя на писано на испанском, а может и нет, не важно, я понял одно...
Как я уже и говорил loadBitmap подгружает только из библиотеки, а то что я написал в посте работает....То есть сначала loadClip, потом draw.
to NewMan_by
Да ты прав.
Сначала грузим внешнюю картинку с помощью loadclip, а затем "рисуем" ее в BitmapData при помощи draw(). После этого тот клип, в который грузили картинку можно удалить через removeMovieClip. В дальнейнем BitmapData можно аттачить при помощи attachBitmap(...)
Если подумать, то мы получаем достаточно неплохой механизм повторного использования картинок, которые чясто повторяются. Теперь не надо каждый раз "тянуть" их с сервака, можно "закешировать".
Также BitmapData предоставляет доступ к пикселям изображения, на него можно накладывать фильтры.
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
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);
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.