![]() |
|
||||||||||
|
|||||
|
День добрый, собсна сабж, у меня есть 20+ иконок (а может быть и больше) и мне надо их внедрить во флекс прилождение. Писать 20+ раз:
как то неочень хочется, есть ли более удобные способы добавить их? Последний раз редактировалось nOobCrafter; 07.09.2009 в 15:18. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 100
|
склейте их в одну "ленту" и загрузите, а когда надо "разрежьте" на отдельные куски
[Embed(source="icons.png")] //<- лента квадратных одноразмерных картинок private var icons:Class; private var images:Array=new Array();// <-массив для картинок private function loadIcons():void { var asset:BitmapAsset=new icons(); var countIcons:int=asset.bitmapData.width/asset.bitmapData.height; var iconWidth:Number=asset.bitmapData.height; for(var i:int=0;i<countIcons;i++) { var bmp:BitmapData=new BitmapData(iconWidth, iconWidth); bmp.copyPixels(asset.bitmapData, new Rectangle(iconWidth*i, 0, iconWidth, iconWidth), new Point(0, 0)); images.push(bmp); } }
__________________
http://komimap.ru Последний раз редактировалось gnus; 07.09.2009 в 18:39. |
|
|||||
|
wvxvw нет то что писать их придется это однозначно) сами они в проекте не появятся..просто думал может есть какой нить вариант с хмлем или типа того, задал имена, задал шаблонные именна классов и пустил генерацию в цикле. Пока что меня больше всего смущает то что каждая иконка определяется как класс и обьявляется видимой всему проекту, этого я немогу сделать и это меня заводит в тупик непонимания.
Смущает именно наличие большого куска однотипных операций, как будто у меня есть 20 кнопок и я для каждой отдельно прописываю одно и тоже действие... gnus а если я сделаю внешний файл-хмл, и в него все запихаю, а потом по загрузке рассортирую в массив, по идее результат будет тот же?... зачем тогда столько телодвижений? |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 100
|
мы про Embed говорим или про загрузку XML?
__________________
http://komimap.ru |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 100
|
почему по другому не получится? это просто 1 из вариантов, который я использую. придумай другой и реализуй.
__________________
http://komimap.ru |
|
|||||
|
Пишите блокнотом bat файл, к примеру такой
Кидаете его в папочку с рисунками, кликаете на нем два раза. Получаете файл вот такой Том в устройстве D не имеет метки.
Серийный номер тома: D05D-7699
Содержимое папки D:\FLEX\RoadX\resource
21.08.2009 14:59 <DIR> .
21.08.2009 14:59 <DIR> ..
...
...
...
21.08.2009 13:43 16*361 рис_авария_дым.jpg
21.08.2009 13:45 16*362 рис_авария_много.jpg
21.08.2009 13:46 16*027 рис_авария_непонятки.jpg
58 файлов 7*464*793 байт
3 папок 8*734*277*632 байт свободно
package { import flash.display.*; import flash.events.Event; import flash.net.*; import flash.utils.ByteArray; /** * ... * @author http://www.murmadillo.tut.su/ */ public class DocFileListPic extends Sprite { private var urlLoader:URLLoader; public function DocFileListPic() { urlLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener(Event.COMPLETE, phpUrlLoaderCompleteHandler); urlLoader.load(new URLRequest('fileList.txt')); } private function phpUrlLoaderCompleteHandler(evt:Event):void { var i:int; var loadStr:String = new String(urlLoader.data); var pattern:RegExp = /рис_.*/; var result:Object; var strUnSort:String = new String(urlLoader.data); //replase spec symbol //trace(loadStr); var pictureArr:Array = loadStr.split("\r"); //var correctArr:Array = []; var picArr:Array = []; for (i = 0; i < pictureArr.length - 1; i++) { result = pattern.exec(pictureArr[i]); //trace(result); if (result!=null) picArr.push(result.toString()); } trace(picArr); //имена файлов загружены - запускаем автоембедер var autoEmStr:String = 'package resource '+ '{ \n\tpublic class BmpPicS {\n ' ; for (i = 0; i < picArr.length; i++) { autoEmStr += '\t\t[Embed(source = "' + picArr[i] + '")]\n\t\private var pic_' + i + ':Class;\n\n'; } autoEmStr += '\t\tpublic var bmpPicArr:Vector.<Bitmap>;\n\n\t\tpublic function BmpPicS(){\n\t\t' + 'bmpPicArr = new Vector.<Bitmap>();\n\n\t\t' + 'var i:int;\n\t\t' + 'for (i=0;i<' + i + ';i++)\n\t\t\t' + 'bmpPicArr[i]=new ["pic_"+i]().bitmapData;\n'; autoEmStr += '\t\t}\n\t}\n}'; var fileReference:FileReference = new FileReference(); fileReference.save(autoEmStr, 'BmpPicS.as'); } } } package resource { import flash.display.*; public class BmpPicS { [Embed(source = "рис_7.jpg")] private var pic_0:Class; ... ... ... ... ... [Embed(source = "рис_мотыки.jpg")] private var pic_12:Class; [Embed(source = "рис_параход.jpg")] private var pic_13:Class; [Embed(source = "рис_пузо.jpg")] private var pic_14:Class; [Embed(source = "рис_рокс.jpg")] private var pic_15:Class; [Embed(source = "рис_сижу.jpg")] private var pic_16:Class; [Embed(source = "рис_синий_зонтик.jpg")] private var pic_17:Class; public var bmpPicArr:Vector.<BitmapData>; public function BmpPicS(){ bmpPicArr = new Vector.<BitmapData>(); var i:int; for (i=0;i<24;i++) bmpPicArr[i]=new this["pic_"+i]().bitmapData; } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|