2011-02-01 6 views
0

私は、バージョン10.からflashplayerで利用可能なrotationX/Y/Zプロパティで遊んでいます。私はキューブを作成し、その3辺にキャンバスオブジェクトを置きましたフロント、ボトム)、ツイーンを作成してチューリングに必要な90度の値を得ました。 3つのサイド・キャンバス・オブジェクトが小さく、複雑でない要素の階層で満たされている場合、rotationX = xxを使用してキューブ(キャンバス)を回転させると効果的です。より大きくより複雑なコンテンツを使用すると、速度が低下します。次のアイデアは、キャンバス要素のコンテンツを削除し、ターンを開始する前に代わりにコンテンツのスナップショットイメージで置き換えることでした。ターンが実行された後、元のコンテンツが再びサイドに戻されました。この結果、良好な性能が向上する。トゥイーンを使用して回転の最後のステップがtweenEndハンドラと呼ばれる関数で実行されます。この機能では、キャンバスの内容を元に戻す処理も実行されます。残念なことに、この結果、最後の回転ステップでキューブが短くぶら下がります。その理由は、回転とコピーバックが同時に行われるからです。 タイマーやsetTimeout(func, 500)を使用してcube.rotationX = endValueを呼び出した後にしばらくお待ちください。しかし、これは醜いです。 私の質問は:cube.rotationX = endValueを呼び出した後、回転のためのデータを計算し、回転自体を行うのに時間が必要です。ローテーションが終了した時点を見つける方法がありますか?ですので、コピーを開始することができますか?rotationXが終了した後の瞬間を知る方法

には任意のデフォルトのイベントは、回転が完了したときにディスパッチ、ありません事前に タイラー

答えて

0

をお願いします。しかし、私はcallLater()関数を使ってコンテンツをコピーすることを考えています。それを試してみてください。

0

正確に言えば、回転の終了を示すイベントはありません。 setTimeout()を使用する代わりにcallLater()を使用する解決策は、しかし、ある程度の時間を待つことは、常に「マシンx上で動作するように」願っているので、改良されたようです。ヒントありがとう!

挨拶

タイラー

関連する問題