バージョン 10 以降の flashplayer で使用できる rotationX/Y/Z プロパティをいじっています。テスト目的で、立方体を作成し、その 3 つの側面 (上、前、下) にキャンバス オブジェクトを配置し、トゥイーンを作成して値を取得しました。 90 度チューリングに必要です。3 つのサイド キャンバス オブジェクトが小さく、それほど複雑でない要素階層で満たされている場合、rotationX = xx を使用して立方体 (キャンバス) を回転させることはうまく機能します。より大きく複雑なコンテンツを使用すると、速度が低下します。次のアイデアは、キャンバス要素のコンテンツを削除し、代わりにコンテンツのスナップショット画像に置き換えることでした。ターンを開始する前に、ターンが実行された後、元のコンテンツが再び側面に戻されます。これにより、パフォーマンスが大幅に向上します。トゥイーンを使用すると、ローテーションの最後のステップは tweenEnd ハンドラーとして呼び出される関数で行われます。この関数では、キャンバスのコンテンツをコピーして戻すプロセスも実行されます。残念ながら、これにより、最後の回転ステップで立方体が短時間ハングします。その理由は、回転と元のコピーが同時に行われるためです。だから私は電話した後、しばらく待つことができましたcube.rotationX = endValue
タイマーまたはを使用しsetTimeout(func, 500)
ますが、これは醜いです。私の質問は次のとおりです。cube.rotationX = endValue
一定期間呼び出した後、ローテーションのデータを計算し、ローテーション自体を実行する必要があります。ローテーションが終了した時点を見つけて、コピーを開始できるようにする方法はありますか?
事前にありがとうタイラー