Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   FlashDevelop. Символы из SWC, классы к ним свои. (http://www.flasher.ru/forum/showthread.php?t=180508)

D1KTAT0R 04.06.2012 14:48

FlashDevelop. Символы из SWC, классы к ним свои.
 
Привет! Народ, подскажите, есть у меня SWC библиотека сделанная следующим образом:
1. Рисую шейпы - экспортирую в объекты - указываю "Export for AS" и "Export in frame 1" (без последнего экспортирует только один символ).
2. Собственно делаю экспорт в SWC...

Далее я подключаю ее к FlashDevelop и вобщем-то все круто, но классы для символов уже определены автоматически. Как мне правильно для этих символов определить свои классы? По сутия хочу к готовым классам подключить нарисованные символы.

zuxul 04.06.2012 15:08

Вам поможет наследование, либо композиция. Другого не дано.

D1KTAT0R 04.06.2012 15:11

Жаль.. Во Flash IDE можно было создать символ и описать его полностью... Хотя это не критично.

zuxul 04.06.2012 15:15

Так что Вам мешает описать его полностью? Создали графику, сохранили в swc.
1) в коде отнаследовались от созданной графики (описали полностью)
2) в коде отнаследовались от Sprite-а, добавили дитёнком созданную графику (описали полностью)

D1KTAT0R 04.06.2012 15:36

У меня в библиотеке классы, которые должны быть потомками более общего класса - в котором присутствует основная логика для потомков. Т.е. например у меня в библиотеки треугольник, круг и квадрат (каждый с автоматически созданными классами) а мне нужно сделать их потомками базового класа "Фигура", в которой нужные методы и поля.

Я вот и подумал - нет ли приема который позволил изначально заложить свою логику в символы?

udaaff 04.06.2012 15:59

А чем вас не устраивает
Цитата:

2) в коде отнаследовались от Sprite-а, добавили дитёнком созданную графику (описали полностью)
?

D1KTAT0R 04.06.2012 16:10

Вы правы. Вполне устраивает. Не подумал. Спасибо!

zuxul 04.06.2012 17:42

Вложений: 1
3) во Flash IDE выбирается для символов, которые идут на экспорт, общий класс, в котором есть какая-то логика. (правда, при любом изменении, придется всю графику перекомпилировать, либо пользоваться хаками - загрузкой в начале нужного класса, чтобы класс, созданный в Flash IDE перекрывался классом, собранным в FlashDevelope)

Я сделал проект, который показывает примерный принцип. Он не простой для понимания (я, кстати, думал, что не сработает, ан нет, работает). Если разберетесь, хорошо, но лучше использовать композицию - идеологически правильно, и без хаков.

expl 04.06.2012 21:13

Цитата:

Жаль.. Во Flash IDE можно было создать символ и описать его полностью... Хотя это не критично.
Дык там тоже нельзя было выходить за рамки наследования, т.е. нельзя было один и тот же класс назначить 2-м символам. Т.е. наследуйтесь - будет тоже самое. Используйте композицию - будет гибше.

fish_r 04.06.2012 21:27

Ещё можно получить ссылку на граф. символы ( что там? шейпы, да? ) обращением #getChildAt(). Затем забрать их и поместить в целевой класс. Ну например:

Код AS3:

 
  // экземпляр класса из swc
  var myImportClass:MovieClip = new MyImportClass();
 
  // получаем ссылку на один из нужных шейпов
  var mySimbol:Shape = myImportClass.getChildAt( 0 ) as Shape;
 
  // забрали и поместили в дисплей лист целевого класса с нужной логикой.
  myTargetClass.addChild( mySimbol );



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

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