Home Flash Examples of events in the MouseEvent ActionScript3

In this article we rascmotrim work with events such as MouseEvent.CLICK, MouseEvent.DOUBLE_CLICK, MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_OUT, MouseEvent.MOUSE_OVER, MouseEvent.MOUSE_UP, MouseEvent.MOUSE_WHEEL, MouseEent.MOUSE_MOVE

First we'll create an empty file EventExample.fla and in the file properties will show the class that will MouseEventExample.as initsializirovatsya at the start of a flush. The specified class, I create a package event.

Class Code MouseEventExample.as

1
2
3
4
5
6
7
8
9
10
11
12
13
package event {
import flash.display.Sprite;
 
public class MouseEventExample extends Sprite {
private var size:uint = 100;
private var bgColor:uint = 0xFFCC00;
 
public function MouseEventExample() {
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ChildSprite extends Sprite {
private var size:uint = 50;
private var overSize:uint = 60;
private var backgroundColor:uint = 0xFFCC00;
private var overColor:uint = 0xCCFF00;
private var downColor:uint = 0x00CCFF;
 
public function ChildSprite() {
draw(size, size, backgroundColor);
addEventListener(MouseEvent.CLICK, ClickHandler);
addEventListener(MouseEvent.DOUBLE_CLICK, DoubleClickHandler);
addEventListener(MouseEvent.MOUSE_DOWN, MouseDownHandler);
addEventListener(MouseEvent.MOUSE_OUT, MouseOutHandler);
addEventListener(MouseEvent.MOUSE_OVER, MouseOverHandler);
addEventListener(MouseEvent.MOUSE_UP, MouseUpHandler);
addEventListener(MouseEvent.MOUSE_WHEEL, MouseWheelHandler);
}
}

The method draw otrisovyvatsya be square.

1
2
3
4
5
6
7
    private function draw(w:uint, h:uint, BgColor:uint):void {
graphics.clear(); / / Zero out
graphics.lineStyle(3,0x000000); / / Draw the stroke
graphics.beginFill(bgColor); / / Create fill
graphics.drawRect(0, 0, w, h); / / Draw a square or pryamougolmnik
graphics.endFill(); / / Closing lines
}

Function for the event MouseEvent.CLICK

1
2
3
    private function clickHandler(event:MouseEvent):void {
trace("Click");
}

Function for the event MouseEvent.DOUBLE_CLICK 

1
2
3
    private function doubleClickHandler(event:MouseEvent):void {
trace("Double Click");
}

Function for the event MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_UP, MouseEent.MOUSE_MOVE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    private function mouseDownHandler(e:MouseEvent):void {
trace("Mouse button pressed");
draw(overSize, overSize, downColor);
var sprite:Sprite = Sprite(e.target); / / Grab the current object
sprite.addEventListener(MouseEvent.MOUSE_MOVE, MouseMoveHandler);
sprite.startDrag();
}
 
private function mouseMoveHandler(e:MouseEvent):void {
trace("Move a sprite");
e.updateAfterEvent(); / / Redraw the screen while driving
}
 
private function mouseUpHandler(e:MouseEvent):void {
trace("Mouse button");
var sprite:Sprite = Sprite(e.target); / / Grab the current object
sprite.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMoveHandler);
sprite.stopDrag();
draw(overSize, overSize, overColor);
}

Function for the event MouseEvent.MOUSE_OUT

1
2
3
4
    private function mouseOutHandler(event:MouseEvent):void {
trace("Remove the cursor from the object");
draw(size, size, backgroundColor); / / Redraw the square
}

Function for the event MouseEvent.MOUSE_OVER

1
2
3
4
    private function mouseOverHandler(event:MouseEvent):void {
trace("Brought the mouse");
draw(overSize, overSize, overColor);
}

Function for the event MouseEvent.MOUSE_WHEEL

1
2
3
    private function mouseWheelHandler(e:MouseEvent):void {
trace("Mouse wheel delta:" + e.delta);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        public function MouseEventExample() {
addEventListener(MouseEvent.MOUSE_OVER, MouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, MouseOutHandler);
var child:ChildSprite = new ChildSprite();
addChild(child);
}
 
public function mouseOverHandler(e:MouseEvent) {
e.target.alpha=0.5;
}
 
public function mouseOutHandler(e:MouseEvent) {
e.target.alpha=1;
}

link. The link will open in the current window.

Comments

 
-2 #1 Bomp 2011-10-06 20:54 Thanks, all works well ... almost, but DOUBLE_CLICK! read the documentation, added doubleClickEnab led = true; but it still does not work! HELP! pliz! Quote
 
 
0 #2 Bomp 2011-10-07 20:30 wrote mouseChildren = false; now it works! although I do not know why:) Quote
 

Nice Ajax Poll

Which one of my extensions is the best?

Statistics

Advertisement