Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Автоматический Embed ресурсов? (http://www.flasher.ru/forum/showthread.php?t=172314)

ShockWave512 06.12.2011 16:30

Автоматический Embed ресурсов?
 
Работаю в FB 4.x. Есть у меня папка с ресурсами, допустим assets/images/, копирую туда файлик, и в код руками добавляю соответственно -
Код AS3:

[Embed(source="assets/images/enemy_01_anim_128.png")]
private var enemy_01_anim_128:Class;

Как это дело можно автоматизировать? Чтоб я просто скопировал файл и получил в рантайме поле этого типа с именем "enemy_01_anim_128"?
Просто грузить файл нельзя, жесткие требования к монолитности флешки!

alatar 06.12.2011 18:53

Ну, напиши себе программу на AIR, которая будет мониторить папку и добавлять строки в исходники.
Или плагин к эклипсу. )

ShockWave512 06.12.2011 19:08

Цитата:

Сообщение от alatar (Сообщение 1050075)
Ну, напиши себе программу на AIR, которая будет мониторить папку и добавлять строки в исходники.
Или плагин к эклипсу. )

а ты не сможешь?

alatar 06.12.2011 19:10

Я не благотворительная организация.

ShockWave512 06.12.2011 19:17

это очень грустно

goodguy 06.12.2011 19:26

У меня возникает резонный вопрос, а зачем их вставлять таким образом автоматически? Как их потом использовать то?
Появится там приватный класс с невесть каким названием, и что он даст?

ShockWave512 06.12.2011 19:39

Цитата:

Появится там приватный класс с невесть каким названием, и что он даст?
я делаю так, примерно
Код AS3:

[Embed(source="assets/images/enemy_01_anim_128.png")]
public static var enemy_01_anim_128:Class;
 
[Embed(source="assets/images/hud_bg_00.png")]
private static var hud_bg_00:Class;
 
[Embed(source="assets/images/platform_01_00_256.png")]
private static var platform_01_00_256:Class;
 
[Embed(source="assets/images/shoot_00_64.png")]
private static var shoot_00_64:Class;
 
public static var _tempArr:Array = [
                        Bitmap(new enemy_01_anim_128),
                        Bitmap(new hud_bg_00),
                        Bitmap(new platform_01_00_256),
                        Bitmap(new shoot_00_64)
 
                ];
// Заполняем кеш.
private function loadFromEmbed():void
{
        var list:Array = EmbedImages._tempArr;
 
        list.length < 1 ? nonValidList() : 0;
 
        for each ( var bitmap:Bitmap in list )
        {
                // Sample name - "EmbedImages_enemy_01_anim_128".
                var fullName:String = getQualifiedClassName( bitmap );
                var name:String = fullName.split("::")[1];
                Registry.bitmapsCash.addItem( name, bitmap );
        }
 
        done();
}
// Извлекаем из кеша.
actor.bitmapData = (Registry.bitmapsCash.getValue("EmbedImages_enemy_01_anim_128") as Bitmap).bitmapData;


wvxvw 07.12.2011 02:52

Есть такое превеликое множество языков плохих, хроших и просто замечательных, на которых эта задача решается в полпинка... ну даже не знаю, на том же PHP возьмите любой пример, в котором генерируется какой-нибудь HTML и по обрзцу соорудите AS файл. А можно еще на Перле, или на Питоне, или на Руби, или на ASP, или на... и список можно еще долго продолжать :)

Код:

(loop for file in (directory "/my/project/images/*.jpeg")
    do (format t "[Embed(source='~a')]~&public static var ~a:Class;~&"
            file
            (string-capitalize
              (subseq (file-namestring file)
                      0 (position #\. (file-namestring file))))))

:)

ShockWave512 07.12.2011 03:10

учитывая все параметры (типы вложений, сохранения данных, добавление папок и таргет файлов, парсинг таргетов чтоб не ломались ... и уйму всего) это задача не одного/двух дней для эйр, которых у меня нет

так что я чуток уточню вопрос - "МОЖЕТ ЧТО ТО УЖЕ ЕСТЬ ИЗ НАПИСАННОГО СОФТА С ПРИМЕРНО ТАКИМИ ЦЕЛЯМИ"

fish_r 07.12.2011 03:16

который бы обрабатывал "... и уйму всего"? вы сами как думаете?
упростите задачу, напишите батник или ant, это позволит и времени немного затратить и задачу решить...


Часовой пояс GMT +4, время: 23:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.