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 пропадет, но делать это каждый раз при компиляции большого проекта - геморой.
Есть идеи?
Создаем 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 пропадет, но делать это каждый раз при компиляции большого проекта - геморой.
Есть идеи?