0

TextFieldとSpriteの両方がy = -20;あり、それらは正しい位置にあります。

それから私はこのトゥイーンをします。

Tweener.addTween(t, {y: 20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 20, time:0.5, onComplete:Hold, transition:"linear"});

(tはTextFieldで、noteBarはスプライトです)

これを行うと、スプライトはy=0になります。ただし、TextFieldはy=20になります。

TextField yが0で、Sprite yが20の場合、正しく機能します。

しかし、それから私はそれらを元の位置に戻すためにこれを行う必要があります。

Tweener.addTween(t, {y: -20, time:0.5, transition:"linear"});
Tweener.addTween(noteBar, {y: 0, time:0.5, transition:"linear"});

スプライトを-20にすると、y=-40になります。

なぜこのように動作するのですか?

4

1 に答える 1

1

「両方ともy=-20にある」と言うとき、これを決定するためにFlashの情報パレットを使用していますか?

情報パレットにはx、yを表示するための2つのモード、登録と変換があるので、私は尋ねます。これは、情報パレットのXフィールドの左側にある小さな登録ポイントアイコンをクリックすることで切り替えられます。

問題は、変換モードでは、表示されるx、yがテキストフィールドの中央になりますが、実際には、テキストフィールドのx、yが左上にあることです。

したがって、簡単な答えは、情報パレットが登録モード(十字線の付いたアイコン)になっていることを確認してから、テキストフィールドを-20に配置することです。

別の解決策は、TextFieldをスプライトでラップして、NoteBarと同じように動作するようにすることです。この場合、情報パレットがどのモードにあるかは関係ありません。

もちろん、これをすべてコードで実行していて、アイテムをFlashに配置しない場合、私の解決策は意味がありません。

-ガブリエル

于 2010-08-10T21:33:28.210 に答える