AS2.0ã§ã¯setMask() を使用ã—ã¦ãƒžã‚¹ã‚¯ã‚’ã‹ã‘ã¦ã„ã¾ã—ãŸãŒã€AS3ã§ã¯ãƒžã‚¹ã‚¯ã•れる表示オブジェクト㮠mask プãƒãƒ‘ティã¨ã—ã¦ãƒžã‚¹ã‚¯ã‚ªãƒ–ジェクトをè¨å®šã—ã¾ã™ã€‚
// オブジェクト maskSprite をオブジェクト mySprite ã®ãƒžã‚¹ã‚¯ã«ã™ã‚‹ã€‚ mySprite.mask = maskSprite;
サンプルã®ã‚³ãƒ¼ãƒ‰ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ドã‚ュメントクラスã«Mask.asã‚’è¨å®šã—ã€Mask.asã«ä»¥ä¸‹ã‚’記述ã—ã¾ã™ã€‚
package
{
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.ui.Mouse;
public class Mask extends MovieClip
{
//四角形作æˆ
var square:Shape = new Shape();
//Loaderオブジェクトを生æˆ
var img1:Loader = new Loader();
//URLã‚’è¨å®šï¼ˆé€šå¸¸ç”¨ï¼‰
var theURL:URLRequest = new URLRequest("gg.jpg");
//円作æˆ
var circle:Sprite = new Sprite();
//コンストラクタ
public function Mask():void
{
init();
}
public function init():void
{
//マウスéžè¡¨ç¤º
Mouse.hide();
// 四角形をæç”»ã—ã€stageã«è¡¨ç¤º
square.graphics.beginFill(0x000000);
square.graphics.drawRect(0, 0, 200, 354);
square.graphics.endFill();
addChild(square);
//イメージをãƒãƒ¼ãƒ‰
img1.load(theURL);
//イベントリスナー登録
img1.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
// 円をæç”»ã—ã€stageã«è¡¨ç¤º
circle.graphics.beginFill(0x0000ff);
circle.graphics.drawCircle(25, 50, 50);
circle.graphics.endFill();
addChild(circle);
//毎フレーム毎ã«ã‚¤ãƒ™ãƒ³ãƒˆé€šçŸ¥
circle.addEventListener(Event.ENTER_FRAME, everyFrame);
//img1ã‚’circleã§ãƒžã‚¹ã‚¯
img1.mask = circle;
}
//ãƒãƒ¼ãƒ‰ãŒå®Œäº†ã—ãŸã‚‰stageã«è¡¨ç¤º
public function imgLoaded(event:Event)
{
//stageã«è¿½åŠ
addChild(img1);
}
//カーソル座標ä½ç½®ã‚’ä¸å¿ƒã«ãƒžã‚¹ã‚¯
public function everyFrame(event:Event):void
{
circle.x = stage.mouseX - circle.width/2;
circle.y = stage.mouseY - circle.height/2;
}
}
}
