PDA

Просмотр полной версии : Создание класса MovieClip из изображения в библиотеке


ikozlov
06.06.2010, 10:32
Имею в библиотеке около 200 изображений, хочу вставить их иконками в List. Для этого мне нужно сделать из изображений мувиКлипы и присвоить классам имена. В связи с этим на сцене будет "помойка". Можно ли сделать эту операцию кодом?

silin
07.06.2010, 01:02
по 'сделать из изображений мувиКлипы', пощупай такой вариант:
import flash.display.BitmapData;

//bmp0, bmp1 - linkage ID графики в библиотеке
var mc0:MovieClip = createImageMC("bmp0");
var mc1:MovieClip = createImageMC("bmp1");
mc1._y = 100;

/**
* создает мувик с битмапом из библиотеки на борту
* @param bmpID linkage ID
* @param smoothing сгаживание битмапа (актуально, если предполагается трансформация мувика)
* @return movieClip
*/
function createImageMC(bmpID:String, smoothing:Boolean):MovieClip {

var depth:Number = getNextHighestDepth();
var name:String = 'clip'+depth;

var mc:MovieClip = createEmptyMovieClip(name, depth);
var bmd:BitmapData = BitmapData.loadBitmap(bmpID);
mc.attachBitmap(bmd,0,null,smoothing);

return mc;
}
насчет 'присвоить классам имена' не понятно ни разу, попробуй сформулировать иначе

Добавлено через 1 час 0 минут
да, это я почему-то решил, что речь о AS2..
если это AS3, то можно попробовать использовать библиотечные Id самих картинок, а в CellRenderer-е переписать методы вывода иконки

var list:List = new List();
list.setStyle("cellRenderer", MyCellRenderer);
addChild(list);
//bmp0, bmp1 - классы графики в библиотеке
list.addItem( { label:"first", icon: bmp0 } );
list.addItem( { label:"second", icon: bmp1 } );

public class MyCellRenderer extends CellRenderer
{

override protected function drawIcon () : void
{
var iconClass:Class = data.icon as Class;
var icon:Bitmap = new Bitmap(new iconClass(0, 0));
addChild(icon);

}
}
правда в этом примере лайблы оказываются не на месте,
надо подумать и о них, видимо в drawLayout, или еще где- сходу и не поймешь, желания ковыряться тоже никаго (не пользуюсь этим добром)

за что мы все так горячо и любим 'родные' компоненты, так это все эти удобства настройки, ну за некапризность тоже, канеш :)