イナヅマTVログ

リンケージClassへ引数設定するとステージに置けないじゃんと言われたので

| 0件のコメント

前回、ライブラリに登録したMovieClipのリンケージClassへ引数を渡すってのをやりましたが、そうするとそのMovieClipをライブラリからドラッグ・ドロップでステージへ置けないって言われたので・・・
Flash, ライブラリのリンケージClassへ引数が渡せることを知った秋の日

なるほど、そんな不都合もあるのねってことでクラスを修正しました。

ライブラリに “RoundRect” MovieClip を作成し RoundRect Class 書き出し設定をしました。


ステージにMovieClipを2つ先に置いています。

画面をクリックするとRoundRectがクリック地点へ追加されます。
座標をRoundRectのTextFieldへ表示します。

Frame Script

stage.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler (e:MouseEvent):void {
	addChild(new RoundRect(new Point(mouseX, mouseY)));
}

RoundRect.as

package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.geom.Point;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
 
import flash.events.Event;
 
public class RoundRect extends MovieClip
{
 
	public function RoundRect(p:Point = null)
	{
		super();
		if (p != null)
			init(p);
		else
			addEventListener(Event.ADDED_TO_STAGE, setup);
	}
 
	private function setup(e:Event):void
	{
		removeEventListener(Event.ADDED_TO_STAGE, setup);
		init(new Point(x, y));
	}
 
	private function init(p:Point):void
	{
		alpha = .5;
		x = p.x;
		y = p.y;
 
		var tf:TextField = new TextField();
		var format:TextFormat = new TextFormat();
		format.font = 'Helvetica';
		format.size = 11;
 
		tf.autoSize = TextFieldAutoSize.LEFT;
		tf.textColor = 0xffffff;
		tf.defaultTextFormat = format;
 
		tf.text = "x:" + p.x + ", " + "y:" + p.y
		addChild(tf);
	}
}
}

コメントを残す

必須欄は * がついています


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください