Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Рекомпиляция SWC с базовыми классами в AS (http://www.flasher.ru/forum/showthread.php?t=139064)

m0djke 22.04.2010 14:48

Рекомпиляция SWC с базовыми классами в AS
 
Есть следующая проблема:
Создаем SWC из Flash IDE (AS3)(CS3/CS4) с одним объектом на экспорт, условно - MyButton (внутри, предположим, графика для кнопки длинной в один фрейм)
В свойствах Export for actionscript для MyButton указываем
Class: MyPackage.swcMyButton
Base class: MyPackage.MyButton

В директории MyPackage лежит MyButton.as с кодом класса.
Код AS3:

package MyPackage
{
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
 
        public class LinkButton extends MovieClip
        {
                public function LinkButton()
                {
                        super();
 
                        mouseChildren = false;
                        buttonMode = true;
 
                        addEventListener(MouseEvent.CLICK, clickHandler);
                }
 
                private function clickHandler(e: MouseEvent):void {
                        trace('Clicked');
                }
        }
}

Теперь создаем AS3 проект во Flash Develop и подключаем (Add to library) наш swc с кнопкой
В Main.as пишем
Код AS3:

var btn:swcMyButton = new swcMyButton();
addChild(btn);

Запускаем в debug. Открывается флешка с нашей кнопкой, жмем на кнопку, получаем trace Clicked в консоль.

Открываем MyPackage\MyButton.as во FlashDevelop, удаляем
Код AS3:

trace('Clicked');

Запускаем в debug. Жмем кнопку, trace Clicked не появляется.

Т.е. swcMyButton изменился вместе с базовым MyButton БЕЗ рекомпиляции SWC во Flash IDE.

Опять добавляем в MyButton trace('Clicked') и build-им SWC через Flash IDE.

Теперь создаем AS3 Project во Flex Builder 3 (Flash Builder 4).
Добавляем наш SWC в свойствах проекта.
В Main.as пишем тоже самое, что и в Flash Develop.
Код AS3:

var btn:swcMyButton = new swcMyButton();
addChild(btn);

Запускаем проект. Кликаем на кнопку - Clicked в консоли.
Теперь через Flex Builder убираем trace.
Запускаем проект. Кликаем на кнопку - Clicked в консоли.

Т.е. базовый класс при компиляции через Flex Builder не повлиял на swcMyButton.

Очень хочется настроить Flex Builder 3 (Flash Builder 4), что бы он так же подключал базовые классы к swc.

Workaround: если во Flex Builder очистить проекты (Project -> Clean...), то trace пропадет, но делать это каждый раз при компиляции большого проекта - геморой.

Есть идеи?

Dragon rideR 24.07.2010 19:40

Автор нашел выход? А то тот же вопрос интересует


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

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