マスクを試す
動的にマスクをあつかったことがなかったのでやってみるテスト。
* あと本題に関係なくBetweenも使ったことなかったから試してみるテスト。
/**
* Copyright esukei ( http://wonderfl.net/user/esukei )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/hPWX
*/
/**
* 動的にマスクをあつかったことがなかったのでやってみるテスト。
* あと本題に関係なくBetweenも使ったことなかったから試してみるテスト。
*/
package {
import flash.display.Sprite;
import org.libspark.betweenas3.BetweenAS3;
import org.libspark.betweenas3.tweens.ITween;
public class MaskTest extends Sprite {
public var targetSprite:TargetObject;
public var maskSprite:Sprite;
public function MaskTest() {
targetSprite = new TargetObject();
addChild(targetSprite);
targetSprite.x = 200;
targetSprite.y = 200;
maskSprite = new Sprite();
//透明度とか指定しても関係ないっぽい。
maskSprite.graphics.beginFill(0x005555,0.5);
maskSprite.graphics.drawRect(0,0,80,80);
maskSprite.graphics.endFill();
//ここはaddChildしなくても適用される
maskSprite.x = 200;
maskSprite.y = 200;
//この動きはaddChildしないと適用されない
var tween:ITween = BetweenAS3.serial(
BetweenAS3.tween(maskSprite,{x:200,y:210}),
BetweenAS3.tween(maskSprite,{x:210,y:210}),
BetweenAS3.tween(maskSprite,{x:210,y:200}),
BetweenAS3.tween(maskSprite,{x:200,y:200})
);
tween.play();
//これするか、しないかで挙動変わる。
addChild(maskSprite);
targetSprite.mask = maskSprite;
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import org.libspark.betweenas3.BetweenAS3;
import org.libspark.betweenas3.tweens.ITween;
class TargetObject extends Sprite
{
private var spriteA:Sprite;
private var spriteB:Sprite;
public function TargetObject() {
spriteA = new Sprite();
spriteA.graphics.beginFill(0x000055);
spriteA.graphics.drawRect(0,0,100,100);
spriteA.graphics.endFill();
addChild(spriteA);
spriteB = new Sprite();
spriteB.graphics.beginFill(0x990000);
spriteB.graphics.drawCircle(0,0,25);
spriteB.graphics.endFill();
addChild(spriteB);
var tween:ITween = BetweenAS3.serial(
BetweenAS3.tween(spriteB,{x:100,y:0}),
BetweenAS3.tween(spriteB,{x:100,y:100}),
BetweenAS3.tween(spriteB,{x:0,y:100}),
BetweenAS3.tween(spriteB,{x:0,y:0})
);
tween.play();
}
}