|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Библиотека ресурсов при помощи mxmlc
Создаю библиотеку ресурсов (картинки, шрифты и т.д.) при помощи as-файла и компилятора mxmlc, а не при помощи fla-файла. При компиляции swf, в него попадают не нужные мне классы из пакета mx.core. Есть ли какая то возможность сделать так, что бы они в библиотеку не попадали?
Образец класса библиотеки: package { import flash.display.Sprite; public class Main extends Sprite { [Embed(source = '../bin/img1.png')] private static const Image1:Class; [Embed(source = '../bin/img2.png')] private static const Image2:Class; [Embed(source = '../bin/img3.png')] private static const Image3:Class; [Embed(source = '../bin/img4.png')] private static const Image4:Class; public function Main():void { } } } |
|
|||||
Есть, но для каждого ресурса нужно создать отдельный класс, типа
|
|
|||||
что то данный код не компилится... пишет Error: A file found in a source-path 'Main' must have the same name as the class definition inside the file 'Img'.
Если же сделать так: то выдает Error: Classes must not be nested. |
|
|||||
Modus ponens
|
Пример f.g.programmer правильный, просто вы не правильно говорите компилятору, где находятся ваши файлы (либо вам нужно правильно указать classpath (параметр -cp) либо вы как-то не-так файл назвали.
__________________
Hell is the possibility of sanity |
|
|||||
Все может быть и даже не может быть, а так и есть.
Как я делаю... Создаю as3 проект во FlashDevelop и в классе Main "эмбедю" картинки (ПКМ по картинке -> Insert Into Document) и далее пишу как у f.g.programmer... Если не жалко времени (аль еще чего) скиньте архивчик с тестовым проектиком. Может покопавшись в нем найду свою ошибку. Кажется сам разобрался... я так понимаю что для каждой картинки надо создавать отдельный as-файл? Последний раз редактировалось Aloran; 13.04.2011 в 00:53. |
|
|||||
Это можно делать практически на любом языке, принцип такой:
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, время: 01:23. |
|
« Предыдущая тема | Следующая тема » |
|
|