問題タブ [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.
actionscript-3 - あるクラスから ENTER_FRAME イベントで関数にアクセスし、AS3 の他のクラスに更新を送信する
プロジェクトを開始したい。しかし、事務処理をしているうちに、次のような状況に気づきました。
たとえば、3 つのクラスがあるとします。
- メインとして、
- A.as、
- 基礎
ここで、「Main.as」は、A と B のインスタンスを作成する中心的なクラスです。
クラスAには、ENTER_FRAMEイベントで「updatePosition(e:Event)」という関数があります。
クラス B は、「Main.as」を介してクラス A からこの「updatePosition(e:Event)」から更新を取得する必要があります。
これは、1 つの ENTER_FRAME イベントと A.as クラスのみでどのように達成できますか?
actionscript-3 - AS3 - onEnterFrame 関数が常に実行されないようにする
さて、「onEnterFrameHandler」関数に関連付けられたcollisionTest関数があります。
したがって、見た目を単純化するには:
問題は、常に実行されていることです。衝突をテストするために常に実行されています。それがこのプロジェクトの遅れを引き起こしているのではないかと感じています。
いつでもイベントをチェックできる必要があるが、イベントが発生していない間は実行されないようにする必要がある関数を制御する良い方法を知っていますか?
actionscript-3 - ENTER FRAME がエラーなしで動作を停止する
いつENTER_FRAME
止まる?
1. removeEventListener(Event.ENTER_FRAME,abc);
2. エラーが発生するか、フラッシュがクラッシュ
します。 3. クラスのインスタンスがステージ
4 から削除されます。
ストーリー:
ゲーム用の AS ドキュメントがいくつかあります。そのうちの 1 つに、ENTER_FRAME
追加する敵が含まれています。
通常は問題なく動作しますが、時々敵を召喚しなくなります。何も変更していません。もう一度テストするために Ctrl+enter を押しました。
私はtrace
チェックに慣れていて、ENTER_FRAME
停留所を見つけました。
それ以外の場合は、trace
の別の AS ファイルに入れてENTER_FRAME
、実行を続けます。それが機能しているかどうかをテストするための levelmanage クラスの
別のクラスで、両方とも停止します。エラーも発生せず、キーを介してオブジェクトを移動できます。
levelmange クラスはどのオブジェクトにも接続しません。ステージ上の何かが削除されても、停止するべきではありません。
何が問題なのですか? ENTER_FRAME
addEventListener(Event.ENTER_FRAME, process);
以下のアズコードは動作を停止したものです。
actionscript-3 - AS3: enterframe/s でループ
ランダムかつ連続的に移動する必要がある 6 つのオブジェクトがあります。各オブジェクトを個別にエンターフレームにするか、すべてのオブジェクトをアドレス指定するループで 1 つのエンターフレームにするのが効率的ですか。
または、1 つの EnterFrame 関数でオブジェクトをループしますか?
actionscript-3 - 特定の時点でオブジェクトを消滅させる方法 as3
foodArray という配列に入れる food というムービー クリップがあります。各食品を右に移動させる独自のクラス (Mover という名前) があります。それが一定のポイントに達すると、食べ物は消えます。
Main クラスに入れた食べ物を消すコードを次に示します。これをEnter Frameに入れました。
これが Mover クラスです
食べ物は問題なく消えていますが、消えるはずのポイントを過ぎても動き続ける食べ物があります。問題は配列の長さにあると推測していますが、よくわかりません。助けていただければ幸いです。:)
ここでファーストイレブンフードを作ります。それで、各タイムラインに 6 つの異なる写真を含む Food というムービークリップがあります。ランダムな食べ物の列を作りたいです。
そして、ここで一度に 1 つの食品を追加します。
これは addFood 関数をトリガーするタイマーです
actionscript-3 - dispatchEvent またはフレームごとに変数をチェックしますか? 単純な親子関係で何がいい?
親オブジェクトと子オブジェクトがあるとします。ある時点で、子の変数 (ブール値) が変更され、親が通知する必要があります。さて、変数が変更されたときに子にイベントをディスパッチさせるか、既存の enterFrameEventHandler でフレームごとにこの子の変数を親にチェックさせる方が、パフォーマンス的には安価ですか?
actionscript-3 - ビットマップの作成機能を停止する/CPU の過負荷を軽減する/ラグを軽減する
こんにちは、次のコードが組み込まれているときに、かなりの遅延が発生していることに気付きました。
したがって、この関数は、enterFrame リスナーから呼び出される別の関数から呼び出されます。任意の時点でおそらく 5 ~ 30 個のムービークリップを含む配列をループしています。次に、指定された mc がビットマップに複製され、そのビットマップを使用して、それ自体と別のビットマップ (「プレーヤー」) との間の衝突をテストします。 . 私は、かなり非効率的な何かが起こっていると想定しています。その結果、「プレイヤー」が動いたときにラグが発生します。問題が何であるか/それに対する解決策を知っている人はいますか?
かなりあいまいな質問のタイトルで申し訳ありません
ありがとう
actionscript-3 - Flash で画面を更新する前に EnterFrame が発生する理由
Flash に 1 fps のアニメーションがあり、各フレームに 100 ミリ秒実行するスクリプトがあるとします。私の知る限り、Flash のアニメーションは次のように機能します。
次の画面更新を待っている間にフレーム スクリプトが実行されるため、このワークフローは論理的です。スクリプトの実行に 1000 ミリ秒かかる場合でも、レンダリングは遅延せず、1 fps のままです。
でも!AS3 内からアニメーションをプログラミングする場合、次の画面更新の直前に発生する ENTER_FRAME イベントをよく使用します。次に、実行に 1000 ミリ秒かかる命令がある場合、ワークフローは次のようになります。
その結果、1 fps ではなく 0.5 fps になりました。シーンをレンダリングする直前にENTER_FRAME が発生するため、遅延が発生します。私にとっては、シーンをレンダリングした直後にENTER_FRAME が発生し、次のフレームでのレンダリングに備えることは非常に論理的です。
これはおもちゃの例であり、現実の世界ではレンダリングは完璧なスケジュールで行われることはありませんが、ロジックは同じです。各フレームの実行に 15 ミリ秒のコードがある場合 (完全に正常な状況)、60 fps は 30 fps に変わります...
... か否か?私の言っていることに間違いはありますか?
actionscript-3 - AS3EnterFrame イベント伝搬の理解の問題
EnterFrame イベントが伝播のためにたどるパスを理解できません。イベントには、キャプチャ、AtTarget、バブリングの 3 つのフェーズがあることを理解しています。
flash.events.Event クラスを見ると、イベントがバブルしていないことがわかります。
DisplayObject に Eventlistener を追加すると、Enter frame イベントを受け取ります。useCapture = true で同じことをすると、イベントは受信されません。
しかし、すべてのイベントがキャプチャ フェーズを通過するべきではないでしょうか? Event ターゲットを確認すると、受信した DisplayObject がターゲットとして返されます。
EnterFrame イベントのターゲットは伝播中に変更されますか、それとも新しいイベントが作成されてすべての DisplayObject に渡されますか?
Flash は、すべての DisplayObject を含む別のリストを保持しますか? DisplayObject が Display Tree に追加されていない場合でも、EnterFrame イベントが受信されるためでしょうか。