PDA

Просмотр полной версии : Рекомпиляция SWC с базовыми классами в AS


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

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

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 пишем
var btn:swcMyButton = new swcMyButton();
addChild(btn);

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

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

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.
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
Автор нашел выход? А то тот же вопрос интересует