許せない心理テスト

質問させて下さい。

//トレーニングボタンを押したとき
train.onRelease = function() {


mydata_len = _level0.entry.length;

i = 0;

typeID = setInterval(function () {

if (i<mydata_len) {
i++;
_root.my_txt.scroll++;

my_txt.text = _level0.entry.substr(0, i);

my_txt.setTextFormat( format );
} else {

clearInterval(typeID);
}


}, 1);

//テキストフィールドのscrollプロパティを監視
my_txt.onScroller = function()
{

if( this.scroll == this.maxscroll )
{
_root.training._visible = false;
_root.trainingend._visible =true;

}

else
{

_root.training._visible = true;
_root.trainingend._visible =false;
}
}

}

テキストフィールドにタイプライター風に文字を一文字づつ表示させ、表示させている間は、表示中のダイナミックテキストをテキストフィールドの下に表示し、スクロールバーが一番したまできたら、表示終了のテキストに切り替わる、という事をしたいのですが、
文字を一文字づつ表示させている間も表示終了の文字が出てきてしまうのです。


文字を一文字づつ表示している間、スクロールバーが一番下にきたら、表示終了。それ以外は表示中、としたいのです。


文字を一文字づつ表示している間。という制約がなければできるのですが、文字の表示中だとうまくいきません。

もしよろしければ、お教えいただきたく思います。


私がつかっているのは、

WIN XP
FLASH MX 2004
です。
よろしくお願いします。

A 回答 (1件)

文字を一文字ずつ書き出しているのと終ったというのは、setIntervalで指定したfunction内容でそれを判別できますので、そちらで制御すると良いかと思います



if (i<mydata_len) {
//ここが一文字ずつ表示を実行している時です
} else {
//ここが全ての文字を表示し終わった時です
}

タイプライター風に表現させているメインの"my_txt"の下にその現在の状態を出すテキストフィールド"now_sts"(インスタンス名)があると仮定すると

if (i<mydata_len) {
//中略
now_sts.text = "表示中"
} else {
//中略
now_sts.text = "表示終了"
}

とすればよいでしょう
    • good
    • 0
この回答へのお礼

suzuki-_-さん。
回答していただき、ありがとうございます。

教えていただいた通りにやったところ、成功いたしました。

僕がactionscriptに関してまったくの勉強不足である事を痛感いたしました。
もっと精進します。
ありがとうございました。

お礼日時:2006/09/05 02:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報