![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 21
|
Подскажите, каким образом можно клонировать(дублировать) подгружаемые картинки, чтобы не загружать одну и ту же картинку 5 раз (она повторяется).
Как это делается? Дублируется Loader или MovieClip в который помещается картинка из Loader'a или картинка преобразуется в Bitmap? |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
__________________
smival.com |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 21
|
во, спасибо.
если можно ещё, напишите, как с самой картинкой быть? т.е. есть Loader как его в Bitmap преобразовать? |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
loader.content
help читать надо иногда
__________________
smival.com |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
$mival, а зачем вы клонируете и Bitmap и BitmapData?
|
|
|||||
|
стервочка (я мужик)
|
$mival, да ... с BitmapData вы погорячились. это пожалуй единственный класс во Флэше, который стоит клонировать, тольк в том случаи если его надо изменять не затронув другие вьюхи. использование одной и той же битмапдаты нехило экономит память.
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 21
|
$mival, да, и правда
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.net.URLRequest;
public class BitmapDataExample extends Sprite {
private var url:String = "Image.gif";
private var size:uint = 80;
public function BitmapDataExample() {
configureAssets();
}
private function configureAssets():void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
var request:URLRequest = new URLRequest(url);
loader.x = size * numChildren;
loader.load(request);
addChild(loader);
}
private function duplicateImage(original:Bitmap):Bitmap {
var image:Bitmap = new Bitmap(original.bitmapData.clone());
image.x = size * numChildren;
addChild(image);
return image;
}
private function completeHandler(event:Event):void {
var loader:Loader = Loader(event.target.loader);
var image:Bitmap = Bitmap(loader.content);
var duplicate:Bitmap = duplicateImage(image);
var bitmapData:BitmapData = duplicate.bitmapData;
var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height);
var destPoint:Point = new Point();
var operation:String = ">=";
var threshold:uint = 0xCCCCCCCC;
var color:uint = 0xFFFFFF00;
var mask:uint = 0x000000FF;
var copySource:Boolean = true;
bitmapData.threshold(bitmapData,
sourceRect,
destPoint,
operation,
threshold,
color,
mask,
copySource);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
}
}
}
Цитата:
(я средне понял, что спросил, т.к. ещё не очень разобрался в этой теме.) Последний раз редактировалось etc; 24.06.2008 в 10:47. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Клонировать только Bitmap, а BitmapData не трогать.
|
|
|||||
|
Регистрация: Jul 2007
Сообщений: 21
|
а в примере что клонируется Bitmap или BitmapData
Если BitmapData,то как клонировать только Bitmap? (если можно начиная с Loader'a) ок Последний раз редактировалось koresh&; 24.06.2008 в 12:10. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|