![]() |
импорт из swc
Доброго ночи-утра )
столкнулся с такой проблемой: понадобилось создавать из библиотеки битмапы. Настраиваем в библиотеке экспорт и все как бы работает. но т.к изображений ~250 собирает cs4 swf'ку безбожно долго - больше минуты. Появилась мысль вынести эти битмапы в отдельный swc, импортнуть и пользоваться. сказано - сделано ) скомпилял swc, подключил к основному проекту. прописал импорт. Код AS3:
Пытаюсь создать объект Код AS3:
убрал строчку импорта - ругается при компиляции, что незнает про testbitmapdata. т.е. явно он его увидел пробую так Код AS3:
т.е. все ок - компилятор его видит, но в рантайме этого объекта нет полез в size report - думал там что полезного увижу. там про testbitmapdata ничего :( Собственно 2 вопроса 1) как заставить этот обхект создаваться в рантайме? 2) может есть какие-то другие способы чтобы компилять быстрее при большом количестве залинкованных объектов в cs4 Заранее благодарен |
не знаю как в дефолтной IDE, а в FlashDevelop импорт не нужно писать. просто trace(new myclass(params))
|
Да и черт бы чей с ним, с импортом )
главное чтоб в рантайме классы были доступны |
А в чем компилится основной проект?
|
Как подключали swc к основному проекту?
в настройках публикации есть парамтры и там можно указать внешние библиотеки. Причем там указать можно 2мя способами 1. путь к библиотеке 2. путь к ВНЕШНЕЙ библиотеке. так вот если сделать способом 2 -- работать не будет. (непонятно вообще зачем оно) и еще советовали, чтобы картинкам не просто класс, а и имя пакета было присвоено. То есть там где as3 class пишите mypictures.pictA При импорте, соответственно, тоже. |
ДА! пункт 1 помог :) Спасибо.
Но возник новый геморрой Код AS3:
причем хоть с именем пакета указывать имя, хоть без |
А Вы его(её?) загрузили в ApplicationDomain.currentDomain, чтобы спрашивать как getDefinitionByName? Нет. И не загрузите.
Давайте разделять понятия compile- и run-time. |
эээ... ну если он скомпилился и создается как
Код AS3:
тогда вся прелесть этого дела пропадает :( |
Эм... два параметра, которые он хочет - это ширина и высота той битмапы, которая у вас должна получится... типа, они обязательные... По крайней мере сталкивался с таким поведением.
|
С параметрами вопрос решен установкой базового класса с конструктором без параметров, это не беда :)
|
Цитата:
|
Нормальный ответ. Другой вопрос зачем адобовцы оставили эти параметры в конструкторе? Они ведь ни на что не влияют... Я одно время очень с этим парился - создавал через jsfl xml в котором записывал размеры битмап - уже вложенных в swf. пока не понял что эти параметры не нужны.))))) Очень нехилый ввод в заблуждение.
Добавлено через 7 минут Цитата:
Для включения всех классов swc в FD установите галочку на библиотеке как Included library, чтобы в итоговый swf попали все классы а не только вызываемые явно через new. как делать в недоИде CSx не знаю. |
Мне нужно ускорить компиляцию. 250 битмапов с экспортом в as тормозят сборку до минуты с лишним. если есть какие-то альтернативные методы - буду благодарен, если про них расскажут. Естественно разговор о получении 1 swf на выходе.
|
Есть вариант доверить сборку DeepBlue. Но на хабре за идею меня заминусуют )
|
DeepBlue это вроде шахматный копм )
|
если не разобрались объясню ещё раз:
вы создаёте внешнюю swc с набором классов. если библиотека присоеденена к проекту, то при компиляции основного swf в него попадают только классы присутствующие явно в коде как Код AS3:
Код AS3:
Для этого нужно установить в опциях подключения библиотеки - "внедрить полностью". в FD - это Included Library (include completely) как это делается в других IDE не знаю, но наверняка нечто похожее есть.. |
| Часовой пояс GMT +4, время: 02:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.