2

時間が 100 を超えている間に、Flash ドキュメントの背景色を変更したいと考えています。すでにカウンターを作成し、それをムービークリップとして割り当てています。私の現在のコードは次のとおりです。

time--;

//this is for motion tween

if (time>0) {
    gotoAndPlay(2);
}   

if (time == 0) {
    fscommand("quit");
    stop();
}

追加してみました

if (time>100) {setStyle("backgroundColor", #FFFFFF);}

しかし、うまくいきませんでした。

この問題を解決する手がかりを教えていただけますか?

4

2 に答える 2

3

100秒?そして、あなたは私が想定する希望の色の2番目のフレームのムービークリップを持っています。したがって、最初のフレームのコードは次のようになります。

setTimeout(function () : void {
    myMovieClipName.gotoAndStop(2);
}, 100000); // 100 * 1000 ms

myMovieClipNameはムービークリップの名前です。ステージで名前を付けます。

于 2012-10-22T17:52:34.533 に答える
0

setStyle が何かわかりません。独自の関数である場合は、メソッド本体を投稿していただけますか? AS3 はハッシュ記号で始まる数字を認識しないため、いずれにしても間違っています。16 進数は 0x で始める必要があります (以下を参照)。

とにかく、それが実際には存在しない想定されたネイティブ関数であると仮定して、ステージ (つまり Flash) を変更するには、次を使用します。

stage.color = 0xFFFFFF;

埋め込まれている HTML ページの背景を変更するには、次のように呼び出します。

ExternalInterface.call("ELEMENT.style.backgroundColor = '#ffffff'; ");

...ここで、ELEMENT は、変更したい要素への参照です。つまり、body、div などです。

いずれにせよ、あなたの条件付きロジックは混乱を招きます。上記が役に立たない場合は、実際に何が起こっているかを確認できるように、コードをさらに投稿していただけますか? ありがとう。

編集

これは私がそのようなアプリケーションを作成する方法ではありませんが、既存のコードに適合させるために、この条件が機能します (ルート タイムラインでコーディングしている場合)。

if(time < 10)
{
     stage.color = 0xFF0000;
}
于 2012-10-22T12:53:17.150 に答える