AS3.0ã§ã®ãƒžã‚¹ã‚¯è¨­å®š

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;
		}

	}

}

Facebook Comments