- 2008-11-05 (水) 10:03
- ActionScript3.0
AS2.0ではsetMask() を使用してマスクをかけていましたが、AS3ではマスクされる表示オブジェクトの mask プロパティとしてマスクオブジェクトを設定します。
Action Script
// オブジェクト maskSprite をオブジェクト mySprite のマスクにする。 mySprite.mask = maskSprite;
サンプルのコードは以下のようになります。ドキュメントクラスにMask.asを設定し、Mask.asに以下を記述します。
Action Script
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;
}
}
}
- Newer: rootプロパティの使い方
- Older: Macがbugって好い感じ。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.chimanaco.net/archives/20081105100321.php/trackback
- Listed below are links to weblogs that reference
- AS3.0でのマスク設定 from チマナコィズムシィステム
