DRAGOnoid
16.07.2007, 19:08
хотел написать функцию которая упрощает работу создания кнопок.
есть у меня много MovieClip'ов на сцене (некоторые будут атачиться)
и хотелось бы к ним привязать действия обычной кнопки такие как ROLL_OVER, ROLL_OUT и т.д.
вот такой кусок кода :
this.modeBotton(this.bt_0);
this.modeBotton(this.bt_1);
---------------\\------------
this.modeBotton(this.bt_n);
// эффекты кнопки
private function modeBotton (mc:MovieClip) {
mc.addEventListener(MouseEvent.ROLL_OVER, rollover);
mc.addEventListener(MouseEvent.ROLL_OUT, rollout);
mc.addEventListener(MouseEvent.MOUSE_DOWN,mousedoun);
mc.addEventListener(MouseEvent.MOUSE_UP, mouseup);
mc.filters = [new DropShadowFilter(0, 90, 0xFF0000, 100, 5, 5)];
}
private function rollover (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
}
private function rollout (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xFF0000, 100, 5, 5)];
eve.target.gotoAndStop(1);
}
private function mousedoun (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xFFFF00, 150, 7, 7)];
eve.target.gotoAndStop(3);
}
private function mouseup (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
}
единственное что отличает все эти кнопки это то какие функции выполнять при нажатии - я хотел было сделать что то типа:
private function mouseup (eve:MouseEvent, f:Function) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
f();
}
но понятно дело так нельзя.
Вот даж незнаю что и делать в общем :o
есть у меня много MovieClip'ов на сцене (некоторые будут атачиться)
и хотелось бы к ним привязать действия обычной кнопки такие как ROLL_OVER, ROLL_OUT и т.д.
вот такой кусок кода :
this.modeBotton(this.bt_0);
this.modeBotton(this.bt_1);
---------------\\------------
this.modeBotton(this.bt_n);
// эффекты кнопки
private function modeBotton (mc:MovieClip) {
mc.addEventListener(MouseEvent.ROLL_OVER, rollover);
mc.addEventListener(MouseEvent.ROLL_OUT, rollout);
mc.addEventListener(MouseEvent.MOUSE_DOWN,mousedoun);
mc.addEventListener(MouseEvent.MOUSE_UP, mouseup);
mc.filters = [new DropShadowFilter(0, 90, 0xFF0000, 100, 5, 5)];
}
private function rollover (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
}
private function rollout (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xFF0000, 100, 5, 5)];
eve.target.gotoAndStop(1);
}
private function mousedoun (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xFFFF00, 150, 7, 7)];
eve.target.gotoAndStop(3);
}
private function mouseup (eve:MouseEvent) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
}
единственное что отличает все эти кнопки это то какие функции выполнять при нажатии - я хотел было сделать что то типа:
private function mouseup (eve:MouseEvent, f:Function) {
eve.target.filters = [new DropShadowFilter(0, 90, 0xcccc00, 100, 5, 5)];
eve.target.gotoAndStop(2);
f();
}
но понятно дело так нельзя.
Вот даж незнаю что и делать в общем :o