Код AS3:
package com
{
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
public class Main extends MovieClip
{
private static const CURSOR_X:int = 200;
private static const CURSOR_Y:int = 200;
private var f1_x:int;
private var f1_y:int;
private var f2_x:int;
private var f2_y:int;
private var f3_x:int;
private var f3_y:int;
public static var take:Boolean = false;
private var f1:Sprite;
private var f2:Sprite;
private var f3:Sprite;
private var area:Sprite;
private var cursor:MovieClip;
private var cursorTweenX:Tween;
private var cursorTweenY:Tween;
//private var foodTweenX:Tween;
//private var foodTweenY:Tween;
public function Main()
{
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void
{
trace("Main class loaded")
this.removeEventListener(Event.ADDED_TO_STAGE, init);
//Mouse.hide();
cursor = new Cursor();
cursor.mouseEnabled = false;
cursor.mouseChildren = false;
stage.addChild(cursor);
cursor.x = CURSOR_X;
cursor.y = CURSOR_Y;
cursor.rotation = -15;
f1 = f1_mc;
f1.mouseChildren = false;
f1.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
f1.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
f2 = f2_mc;
f2.mouseChildren = false;
f2.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
f2.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
f3 = f3_mc;
f3.mouseChildren = false;
f3.addEventListener(MouseEvent.MOUSE_DOWN, drag, false, 0, true);
f3.addEventListener(MouseEvent.MOUSE_UP, drop, false, 0, true);
f1_x = f1.x;
f1_y = f1.y;
f2_x = f2.x;
f2_y = f2.y;
f3_x = f3.x;
f3_y = f3.y;
area = area_mc;
area.addEventListener(MouseEvent.ROLL_OVER, mouseOver, false, 0, true);
stage.addEventListener(Event.MOUSE_LEAVE, mouseOut, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveCursor, false, 0, true);
}
private function drag(e:MouseEvent):void
{
take = true;
e.target.startDrag();
e.target.mouseEnabled = false;
}
private function drop(e:MouseEvent):void
{
take = false;
e.target.stopDrag();
e.target.mouseEnabled = false;
}
private function mouseOver(e:Event):void
{
cursor.gotoAndStop("handl");
}
private function mouseDown(e:MouseEvent):void
{
cursor.cursor_in_mc.gotoAndStop(2);
}
private function mouseUp(e:MouseEvent):void
{
//f1.stopDrag();
//f2.stopDrag();
//f3.stopDrag();
cursor.cursor_in_mc.gotoAndStop(1);
f1.x = f1_x;
f1.y = f1_y;
f2.x = f2_x;
f2.y = f2_y;
f3.x = f3_x;
f3.y = f3_y;
}
private function mouseOut(e:Event):void
{
cursorTweenX = new Tween(cursor, "x", Strong.easeInOut, cursor.x, CURSOR_X, 20, false);
cursorTweenY = new Tween(cursor, "y", Strong.easeInOut, cursor.y, CURSOR_Y, 20, false);
cursor.gotoAndPlay(1);
}
private function moveCursor(e:MouseEvent):void
{
cursor.x = stage.mouseX;
cursor.y = stage.mouseY;
}
}
}