flash on 2012-9-19
♥0 |
Line 72 |
Modified 2012-10-11 00:45:13 |
MIT License
archived:2017-03-30 08:31:36
ActionScript3 source code
/**
* Copyright hemingway ( http://wonderfl.net/user/hemingway )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/vCIN
*/
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class maskTest extends Sprite {
internal var spr1:Sprite = new Sprite;
internal var sprA1:Sprite = new Sprite;
internal var spr2:Sprite = new Sprite;
internal var spr3:Sprite = new Sprite;
internal var locX:Number;
internal var locY:Number;
internal var ptOld:Point = null;
internal var ptNew:Point = null;
internal var ptClc:Point = null;
internal var $eObj:Object;
public function maskTest()
{
spr1.graphics.beginFill (0x000000, 0.25);
spr1.graphics.drawRect (0, 0, 350, 350);
spr1.graphics.endFill ();
sprA1.graphics.beginFill (0x000000, 0.25);
sprA1.graphics.drawRect (0, 0, 350, 350);
sprA1.graphics.endFill ();
spr2.graphics.beginFill (0x000000, 0.25);
spr2.graphics.drawRect (0, 0, 200, 200);
spr2.graphics.endFill ();
addChild(spr1);
addChild(sprA1);
addChild(spr2);
addChild(spr3);
//spr1.blendMode = BlendMode.LAYER;
//spr3.blendMode = BlendMode.ERASE;
spr3.graphics.beginFill (0x000000, 0.25);
spr3.graphics.drawRect (0, 0, 100, 100);
spr3.graphics.endFill ();
spr3.mask = spr1;
spr2.mask = sprA1;
stage.addEventListener(Event.ADDED, addedToStage);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
public function onMouseDown ($e:MouseEvent):void
{
ptOld = new Point(mouseX, mouseY);
if ($e.target !== stage)
{
$eObj = $e.target;
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
public function onMouseUp ($e:MouseEvent):void
{
stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
$eObj = null;
}
public function addedToStage ($e:Event):void
{
spr1.x += 50;
spr1.y += 50;
spr2.x += 250;
spr2.y += 50;
spr3.x += 50;
spr3.y += 250;
}
public function onEnterFrame ($e:Event):void
{
ptNew = new Point(mouseX, mouseY);
ptClc = ptNew.subtract(ptOld);
$eObj.x = ($eObj.x + ptClc.x); //subtract registration points
$eObj.y = ($eObj.y + ptClc.y);
ptOld = ptNew;
}
}
}