4.traceが使えない!

環境を整える

FLASH作成時、必ずお世話になるtraceですが、現環境下ではその出力を見ることができません。

いや、見る方法はあるのかもしれませんが、私にはできません。

もともと、MX2004での作業時にいろんな値をチェックするため、自分で値などを表示させるMCを作って使用してました。

Hello!って文字が表示できるわけだらか、同じように表示させればいいか、とそのようなクラスを作ってみました。

そのスクリプトが以下のものです。

クリアボタンを押すと内容消去。全体をドラッグして移動できます。

// messagebox.as
// メッセージ表示クラス
package {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.URLRequest;

// messageboxクラスの宣言
public class messagebox extends Sprite {

public var container:Sprite = new Sprite();//呼び出し元で使うため private だとエラー
private var b_txt:TextField;
private var clearbt:Loader;

public function messagebox() {// コンストラクタ

//containerの形状指定
var cx:int = 0;
var cy:int = 0;
var cw:int = 200;
var ch:int = 400;
container.graphics.beginFill(0xCCCCCC);
container.graphics.drawRect(cx,cy,cw,ch);
container.graphics.endFill();
container.x=300;
container.y=0;

//イベントリスナー設定(ドラッグ用)
container.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
container.addEventListener(MouseEvent.MOUSE_UP, mouseup);


// 表示用のテキストフィールドを作る
b_txt = new TextField();
b_txt.x=0;
b_txt.y=0;
b_txt.width =200;
b_txt.height=400;

//テキストのフォーマット
var format:TextFormat=new TextFormat();
format.font ="_等幅"; //フォント名
format.size =14; //サイズ
format.color =0x333333;//色
b_txt.setTextFormat(format);

container.addChild(b_txt);


//クリアボタン設定
var tURL:String = "clearbt.swf";//クリアボタン画像ファイル
var urImage:URLRequest = new URLRequest( tURL );
clearbt = new Loader();
clearbt.load( urImage );
clearbt.x=174;
clearbt.y=4;
clearbt.scaleX=0.7;
clearbt.scaleY=0.7;

container.addChild(clearbt);

//イベントリスナー設定(クリアボタン用)
clearbt.addEventListener(MouseEvent.CLICK, onClick);
}

public function show(txt:String):void {//表示するメソッド
b_txt.appendText(txt+"\n");
}

private function onClick(evt:MouseEvent):void {//クリアボタン
b_txt.text="";
}

private function mousedown(evt:MouseEvent):void {//ドラッグスタート
container.startDrag(false);
}
private function mouseup(evt:MouseEvent):void {//ドラッグストップ
container.stopDrag();
}
}
}

あ。¥が逆スラッシュになってる?まあコピペすれば¥になるから許して下さい(^^;

使ってみよう

実際に使用する時は使うスクリプトで以下のようにします。

先のHello.asに組み込んでいます。■の部分がメッセージ表示用に追加した部分です。

// Hello.as
package {
import flash.display.*;
import flash.text.*;

public class Hello extends MovieClip {

private var message:messagebox;//■

function Hello() {
message = new messagebox();//■
addChild(message.container);//■

var a_txt:TextField = new TextField();
addChild(a_txt);
a_txt.text = "Hello!";

message.show("Hello!を出力しました");//■
}
}
}

細かい突っ込みは置いといて、、、とりあえず、これでtrace代わりにはなるでしょう。

実行結果を見てみる

ファイルの文字コードをUTF-8にしておかないと、文字化けしてましたのでご注意を。

実は、、、

後で知ったのですが、Flash TracerなるFirefoxのアドオンがあるそうです。

それを使うとtraceの出力を見ることができるんだとか。

試しにやってみたのですが、何が悪いのかわかりませんが、とにかくうまくいかず、、、

原因探るのも面倒だし、自作のクラスでもええわ!と思って深く追求しませんでした。

→5.外部画像の読み込み1

3.Hello,AS3!←