Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Класс-поведение MovieClip (http://www.flasher.ru/forum/showthread.php?t=138290)

КорДум 03.04.2010 19:48

Класс-поведение MovieClip
 
Здравствуйте, вот такой назрел вопросик: чтобы поместился клип в swc-библиотеку, ему нужно создать класс. При этом в этом классе, по идее, уже должен быть код-поведение этого клипа. А если нужно просто поместить клип в swc-библиотеку без класса, а сам класс создать в FD с нуля?
Обычно я делал так: создавал пустышку-класс, а класс, написанный с нуля в FD, я делал расширяющим этого класса-пустышки. И вот что-то мне подсказывает, что это нерационально и по меньшей мере странно. Скажите, пожалуйста, как правильно нужно делать?

Bgg 03.04.2010 20:19

Цитата:

Сообщение от КорДум (Сообщение 897761)
чтобы поместился клип в swc-библиотеку, ему нужно создать класс.

Кто сказал? Создавайте в библиотеке объект, ставьте галку Export for ActionScript и пишите название класса, я обычно пишу что то вроде SWCMyClass, и дальше уже в FD создавайте MyClass и расширяйте его от SWCMyClass.

КорДум 03.04.2010 20:23

Я так и делал. По сути, класс-пустышка создается автоматически. Это разве правильно?

Vier 04.04.2010 03:27

Так можно сразу делать полноценный, связанный с клипом, класс.

wvxvw 04.04.2010 06:10

В таком случае оптимально просто в FD содать класс с таким же именем. У AS файлов есть приоритет при компиляции над SWC, так что все-равно ресурс прилинкуется к вашему классу а не к тому, что в SWC.
Но это может быть чревато в смысле, если там мувиклипы и у них анимация и т.п. Линкер может некорректно это все дело перелинковать.
А вообще, как минимум, класс-пустышка все-равно будет. Технически вы можете запихать просто ресурс в SWF, но, для всего прочего кроме шрифтов, это немного бессмысленно т.как потом будет проблематично вытащить из ассембли. Т.е. чтобы как-то получить картинку, например, вам нужно ее прилинковать к классу-наследнику BitmapData / Bitmap. Так вы ее сможете создать и чего-нибудь с ней сделать. А если не прилинковать, а просто сохранить ресурс картинки, то вы получите набор байтов описывающий картинку в какой-то разновидности JPEG формата и будете долго думать, как бы ее трансформировать во что-то, что Флеш сможет "переварить".

КорДум 04.04.2010 12:51

2 Vier: тогда придется писать класс во Flash IDE или в FD вкупе с Flash IDE на фоне, дабы скомпилировать swc с этим классом. Даже с минимальными изменениями. Я же сейчас перешел полностью на FD и пытаюсь выжать максимум удобства.

2 wvxvw: спасибо за ответ. Все же без класса-пустышки не обойтись. Тогда встает другой вопрос - сильно ли много занимает памяти класс-пустышка с расширяющим его классом относительно одного класса, расширяющего MovieClip?

fljot 04.04.2010 16:24

Вложений: 1
КорДум

Структура такая:
/src/controls/MenuButton.as
/libs/fla/projectname.fla
/libs/fla/projectname.swc

Во fla-файле указываешь добавляешь путь (classPath или sourcePath как он там называется) ../../src, чтобы он видел твою src папку. Рисуешь символ кнопки, выставляешь у неё class: MenuButtonAsset(или как тебе удобнее), base class: controls.MenuButton[*]. Компилишь swc, подключаешь к проекту. Теперь при изменении класса controls.MenuButton перекомпилировать swc НЕ ОБЯЗАТЕЛЬНО, mxmlc как-то хитро "соединит" классы MenuButtonAsset из swc и изменённый controls.MenuButton.
Такой метод лучше, чем расширять класс с кодом от класса с графикой, как вам там выше советовали, потому что этим способом можно иметь разные графические элементы с одним функционалом (т.к. они все наследуются от одного класса).
[*] Если вдруг в процессе работы надо будет перекомпилировать swc, а в базовых классах будет что-то такое, что флеш не может так сразу скомпилить (аировские или флексовые фишки) ИЛИ fla отдали дизайнеру на изменения и он компилирует на своём компе, у которго нет всех этих классов, то можно создать базовые классы-пустышки в /libs/fla/, вот я накидал jsfl для автоматизации этого дела.

КорДум 05.04.2010 19:47

Хм, интересная штука получается. Спасибо, опробую, как сяду за ноут. Только хотелось бы спросить, как работать с jsfl?

fljot 05.04.2010 20:15

На гугле забанили чтоли?)
http://help.adobe.com/en_US/Flash/10...4f3f-7fe8.html


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

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