Библиотека ресурсов при помощи mxmlc
Создаю библиотеку ресурсов (картинки, шрифты и т.д.) при помощи as-файла и компилятора mxmlc, а не при помощи fla-файла. При компиляции swf, в него попадают не нужные мне классы из пакета mx.core. Есть ли какая то возможность сделать так, что бы они в библиотеку не попадали?
Образец класса библиотеки: Код AS3:
|
Есть, но для каждого ресурса нужно создать отдельный класс, типа
Код AS3:
|
что то данный код не компилится... пишет Error: A file found in a source-path 'Main' must have the same name as the class definition inside the file 'Img'.
Если же сделать так: Код AS3:
|
Пример f.g.programmer правильный, просто вы не правильно говорите компилятору, где находятся ваши файлы (либо вам нужно правильно указать classpath (параметр -cp) либо вы как-то не-так файл назвали.
|
Все может быть и даже не может быть, а так и есть.
Как я делаю... Создаю as3 проект во FlashDevelop и в классе Main "эмбедю" картинки (ПКМ по картинке -> Insert Into Document) и далее пишу как у f.g.programmer... Если не жалко времени (аль еще чего) скиньте архивчик с тестовым проектиком. Может покопавшись в нем найду свою ошибку. Кажется сам разобрался... я так понимаю что для каждой картинки надо создавать отдельный as-файл? |
Да, чтобы мой пример работал, нужно поместить код в файл image1.as и разместить его в корневом пакете.
Генерировать такие классы можно автоматически. |
А подскажи, каким образом ты их так генерируешь?
|
Это можно делать практически на любом языке, принцип такой:
1. готовится минимальный шаблон, например Код:
package { import flash.display.Bitmap; [Embed(source='(PATH)')] public class (NAME) extends Bitmap {} } ("image1" => "e:/image1.jpg", "image2" => "e:/image2.jpg") 3. генерируются as файлы подстановкой в шаблон имени и пути 4. генерируется ещё один класс, который импортирует все сформированные классы, и компилируется |
В итоге решили, что наличие классов из пакета mx.core, не критично и лучше обойтись без создания лишних файлов...
Но тут есть еще один недостаток: при компиляции к именам классов добавляет имя основного класса. Т.е. если смотреть на пример из первого поста, то в итоге, в либе, получаем классы Main_Image1, Main_Image и т.д. Как это побороть? |
Скорее всего никак, но ничто не может помешать вам удалить лишние файлы после сборки библиотеки также автоматически.
|
Часовой пояс GMT +4, время: 04:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.