問題タブ [enterframeevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-flex - Flex プロファイリング - [enterFrameEvent] は何をしていますか?
私は、納入された Flex アプリケーションの深刻なパフォーマンスの問題を発見 (および潜在的に修正) する任務を負っています。アプリケーションは、アイドル状態で何もしていないときに、常に CPU の 50 ~ 100% を使用します。
最初のステップは、FlexBuilder に付属のプロファイラーを実行することでした。私は、ボトルネックがどこにあるかを示して、ほとんどの時間を費やしていた何らかの方法を見つけることを期待していました. しかし、私は予期しないものを得ました。
上位 4 つの方法は次のとおりです。
- [enterFrameEvent] - 累積 84%、自己時間 32%
- [reap] - 20% 累積および自己時間
- [tincan] - 8% 累積および自己時間
- global.isNaN - 4% の累積および自己時間
他のすべての方法では、累積時間と自己時間の両方が 1% 未満でした。
私がオンラインで見つけたものから、[括弧で囲まれたメソッド] は、表示する実際の Flex メソッドがない場合にプロファイラーがリストするものです。[tincan] は RTMP リクエストの処理であると誰かが主張しているのを見ましたが、[reap] はガベージ コレクターだと思います。
[enterFrameEvent] が実際に何をしているか知っている人はいますか? これは基本的にイベント ループの「メイン」関数であると想定しているため、累積時間が長くなることが予想されます。しかし、なぜセルフタイムがそんなに高いのですか?実際に何が起こっているのですか?特にアプリで実際に何も起こっていない (そして UI の更新が行われていない) ため、プレーヤーの内部処理にこれほど多くの時間がかかるとは予想していませんでした。
何が起こっているのかを掘り下げる良い方法はありますか? あってはならないことが起こっていることはわかっています (ある種のビジー待機またはその他の暴走ループが発生しているように見えます) が、プロファイラーは期待していた結果を返してくれません。私の次のステップは、さまざまな場所にデバッグ トレース ステートメントを追加して、実際に何が起こっているかを追跡することですが、もっと良い方法が必要だと感じています。
actionscript-3 - FLVを埋め込むか、FLVをSWFにコンパイルして動的にロードするか、どちらがより効率的ですか?
最近、人気番組「ゴーストウィスパラー」のインタラクティブミュージックビデオを作成するという、かなり大変な作業を引き受けました。私はプロジェクトの後半に連れてこられ、巨大なオーサリングファイル(約5000フレーム以上の長さ)に直面しました。以前のプログラマー(AS2ですべてを行った)は、基本的にタイムメインタイムラインに2分半のFLVを埋め込み、特定のフレームポイントで、他のクリップを再生するようにそれらのクリップをトリガーする基本的なマウスクリック機能との対話性のためにクリップを追加しましたいくつかのフラッシュ要素といくつかのビデオ要素で。
(私が作成した最終バージョンはここhttp://www.gwghostmagic.comで見ることができます);
きちんとしたフリークなので、AS3ですべてを再構築し、タイムラインを完全に破棄し、実行時に要素をロードして、5000フレームの代わりに1つのフレームを作成し、アクションをトリガーしてEvent.ENTER_FRAMEイベントリスナーを追加することにしました。ロードされた.swfが特定のフレームに到達したときに対話性をトリガーします。プログラマーの観点からは、特定のアクションを操作するためにすべてがはるかに明確で簡単になりました。問題は、物事ががらくたのように実行されたということでした。
5000+フレームバージョンは、私のAS3バージョンよりも高速にロードされ、スムーズに実行されました。イベントリスナーから実行するよりも、タイムラインを埋め込んで実行する方が良いのはいつですか?フラッシュはタイムライン機能に適していますか?
当初、ストリーミング.flvをビルドして実行することにしましたが、.flvが23.975 fpsで実行されていたのに対し、フラッシュムービーは24 fpsで実行されていたため、アクションを.flvに同期することはできませんでした。残念ながら、flvを埋め込んだ.swfをコンパイルする必要がありました。次に、その.swfがメインの.swfに読み込まれ、読み込まれた.swfのフレーム位置に従って再生されるすべての関数と追加のクリップが含まれていました。
私が気づいたことの1つは、Event.ENTER_FRAMEは、フレームごとに200行のコード長のifステートメントのリストを実行する必要があるため、アプリケーション全体の速度を低下させるように見えることです。ここで、すべてが埋め込まれている場合は、インタラクティブクリップがインスタンス化されるキーフレームを挿入するだけで、if elseステートメントを循環するのではなく、すぐに何をすべきかがわかります。
私は物事を素敵で整頓しようとして失敗しましたか?フラッシュをフラッシュにしたほうがいいですか?私は別のキャリアを探すべきですか?どんな入力でも大歓迎です。
flash - AS3 で KeyboardEvent を使用せずにキーボードの状態を確認する
KeyboardEvent を使用せずに押されたキーを確認することは可能ですか?
enterFrameHandler と呼ばれる ENTER_FRAME イベント設定があり、関数 enterFrameHandler 内でキーが押されたかどうかを確認したいと考えています。
通常、KeyboardEvent を使用する場合、イベントの KeyCode をチェックするスイッチを使用してキーを簡単にチェックできますが、ENTER_FRAME イベントではこれは不可能です。
ENTER_FRAME イベント内でキーボードの状態を確認する他の方法はありますか?
更新: この AS2 スクリプトを見つけました:
これは私がやりたいことをやっているようですが、AS2 にあります。これを AS3 に「変換」する方法を知っている人はいますか?
actionscript-3 - Enter Frameは、トゥイーン時にhitTestObjectを正確に検出しません
Enter_Frameを実行している関数があり、関数中にトゥイーンします。現在使用しているTweenLiteの代わりにobject.y=object.y+1を使用できることはわかっています。しかし、TweenLiteは私が望んでいた最高の効果をもたらします。今の私の問題は、enter_frame関数が互いに衝突していないときにそれを削除したかったということです。しかし、hitTestObjectをトレースすると、一瞬のように、hitTestObjectの結果が「false」を返します。したがって、トゥイーンは実際には1番目に終了できず、オブジェクトがまだ衝突している間に、enter_frameの実行を早期に削除します。
c# - Expression Blend/WPF に EnterFrame イベントに相当するものはありますか?
私はAS3と Java からExpression Blend/WPFに移行していますが、 C#EnterFrame
でイベントをレプリケートする方法がわかりません。または関数があります。update()
frameUpdate()
actionscript-3 - AS3: ディレイ エンター フレーム アニメーション
ENTER_FRAME を使用してフェードアウト アニメーションを作成しました。2〜3秒後にフェードアウトを開始したい。この遅延を作成するにはどうすればよいですか?
actionscript-3 - エンターフレームのループ?
AS3でたくさんの単語をアニメーション化しています。これをモバイルデバイスで使用するので、スプライトではなくビットマップを使用したいと思います。そこで、アクセスできる.bitmapプロパティを持つWordObjectsを作成しました。
次のコードがあります。これは、クリックイベントで起動し、enterframeイベント内の配列をループします。これはおそらく悪い考えですが、どうすればもっとうまくできるかわかりません。(驚くべきことは、Flashbuilderでは問題なく動作しますが、Flash CS5ではクロールが遅くなることです。)
これを行うためのより良い方法はありますか?ビットマップの配列をアニメーション化する効率的な方法が必要です。
flash - AS3 敵をマウスの方向に移動させる
敵のクラスにはビットマップが埋め込まれています。FlashDevelop を使用してプログラムしています。energy.x+=1 のようなことをすると動作しますが、トゥイーンスクリプトを使用しようとすると、マウスの位置に関係なく敵が静止します。ありがとう、ブロブスタ
flash - 視差の自動スクロールを作成してから、マウス コントロール イベントに切り替えるにはどうすればよいですか?
つまり、これが Parallax イベントの実行を開始するすべてのコードです。Lee Brimelow によるlayersmagazine.com のコードを使用しています。
マウスをステージの左または右に移動すると、視差効果がうまくスクロールしますが、ロード時に自動的に視差効果を開始し、少しスクロールしてから停止し、マウスによる制御に切り替えることを望みます。 .
スクロールがうまく機能しないため、MouseOver イベントはあまり効果的ではありません。
actionscript-3 - オブジェクトが 4 フレームごとに入るように ENTER_FRAME を指定するにはどうすればよいですか?
したがって、ENTER_FRAME プロパティは、ゲームが実行されるすべてのフレームでステージにオブジェクトを追加します。ゲームが 24 fps の場合、1 秒あたり 24 個のオブジェクトが作成されます。4 フレームごとにオブジェクトを生成するように制限するにはどうすればよいですか?