Цитата:
Сообщение от Vektor
Правильно говоришь, вот пришлось дописать.
 Код AS3:
private var _iCounter:int=0;
//Когда нада удалить кнопки.
onButtonDelete(_mcButton);
onButtonDelete(_mcButton1);
private function onButtonDelete(But:MovieClip):void {
...
_iCounter++;
...
|
Какой-то ужос на ровном месте, ИМХО вместо

Код AS3:
onButtonCreate(_mcButton,100,100);
onButtonCreate(_mcButton1, 100,200);
создали бы класс-обвертку для одной-единственной кнопки, а потом

Код AS3:
var button:DisplayObject;
button = new MyButton(_mcButton);
button.x = 100;
button.y = 100;
addChild(button);
button = new MyButton(_mcButton1);
button.x = 100;
button.y = 200;
addChild(button);
А то тут куча разделяемых переменных на 2 кнопки, уже счетчики пошли...
Ну и сам этот несчастный класс:

Код AS3:
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class MyButton extends Sprite
{
private var button:MovieClip;
public function MyButton(button:MovieClip) {
this.button = button;
this.button.gotoAndStop(1);
addEventListener(MouseEvent.ROLL_OVER, onRollOver);
addEventListener(MouseEvent.ROLL_OUT, onRollOut);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private var _isOver:Boolean = false;
private var _isDown:Boolean = false;
private function onRollOver(event:MouseEvent):void {
_isOver = true;
updateFrame();
}
private function onRollOut(event:MouseEvent):void {
_isOver = false;
updateFrame();
}
private function onMouseDown(event:MouseEvent):void {
_isDown = true;
updateFrame();
// Стейдж здесь уже будет, иначе как на кнопку смогли нажать?
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
private function onMouseUp(event:MouseEvent):void {
// Сработает, даже если отжали за пределами флешки, т.е. отпишемся стопроцентно
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
_isDown = false;
updateFrame();
}
private function updateFrame():void
{
if (_isDown) {
if (_isOver) {
this.button.gotoAndStop(4);
} else {
this.button.gotoAndStop(3);
}
} else {
if (_isOver) {
this.button.gotoAndStop(2);
} else {
this.button.gotoAndStop(1);
}
}
}
}
}