問題タブ [cadisplaylink]
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.
ios - 動くボタンを新規作成するとボタンが動かなくなる
開始というボタンをクリックすると、作成中のボタンが画面の片側から反対側に移動するゲームを作成しています。問題は、移動していたボタンが終点に到達する前に開始をクリックすると、続行せずに停止することです (そして、別の作成されたボタンが期待どおりに移動し始めます)。スタート ボタンをクリックするたびに新しい CADisplayLink を作成する必要がありますか? もしそうなら、どうすればいいですか?コードは次のとおりです。
助けてください。本当にありがたいです。前もって感謝します。アントン
ios - 無効化後に CADisplayLink を停止できない
UIButton
最初のボタンは CustomeView をトリガーし- beginAnimation
、もう 1 つのボタンは をトリガーします- endAnimation
。この 2 つのボタンを のようにすばやく交互に押すと、停止できないことがbegin -> end -> begin -> end -> begin -> end
わかりました。CADisplayLink
さらに、- rotate
の連射速度は 60fps を超えており、私のメインの RunLoop に60 -> 120 -> 180
複数あるように になりました。それを修正する方法はありますか? CADisplaylink
そして、ビューのアルファがゼロになる前に実行を続ける必要があるため、完了ブロックCADisplaylink
に を入れました[self.displayLink invalidate];
。これがこの問題を引き起こすのではないでしょうか?</p>
swift - 厚い物質に円形のオブジェクトが入ったり離れたりする効果を作成する方法
下の画像を元に(円と平面が分かるように色を変えてみましたが、最終的には同じ色になります)、SwiftとSpritekitを使って、円状の物体が入ったような効果を出そうとしています。濃厚な物質(必ずしも粘着性である必要はありません)と、濃厚な物質からの分離。基本的に、円形のオブジェクトが分離するときは、円を形成しながら平面から引き離されます。イメージ アニメーション フレームを使用したかったのですが、オブジェクトが物理ボディを持つ SKSpriteNode であるため、オブジェクトとアニメーションの衝突のタイミングが非常に難しくなります。もう 1 つのアプローチは CAAnimation を使用することですが、物理ボディを持つ SKSpriteNodes とこれを組み合わせる方法がわかりません。上記のアプローチのいずれかまたは別のアプローチを使用して、この分離効果を作成するにはどうすればよいですか?
アップデート
下の画像は、厚い物質に円形の物体が入り、沈むまでの、厚い物質の表面の変化を示しています。
ios - アプリケーションがバックグラウンドにあるときに CADisplayLink を実行できますか?
アプリケーションで CADisplayLink をタイマーとして使用しています。私のアプリはCADisplayLinkの精度/精度に大きく依存しているため、CADisplayLinkを使用しています。私の場合、NSTimerは適切な代替品ではありません。
問題は、アプリケーションがバックグラウンドにあるときに、CADisplayLink を起動してそのセレクターを呼び出す必要がある場合があることです。これは可能ですか?CADisplayLink がアプリケーション UI のリフレッシュ レートにリンクされていることを理解しています。これは、アプリがバックグラウンドにある場合、UI がないため、この場合 CADisplayLink を使用できないということですか? または、CADisplayLink を追加する実行ループを変更するか、引数を変更することで、CADisplayLink を使用することはできforMode
ますか? または、おそらくGCDのトリック/回避策を使用していますか?
注: 私のアプリは AudioPlayer を使用しているため、バックグラウンド機能を有効にしています。バックグラウンドで他のコードを実行できます。テストのために、CADisplayLink を NSTimer に切り替えたところ、NSTimer が起動し、必要に応じてセレクターを呼び出しました。CADisplayLink を起動させることができず、バックグラウンドで使用する可能性に関する決定的なドキュメントが見つかりません
表示リンクに関する現在のコードは次のとおりです。
swift - Swift カスタム アニメーションでの CADisplayLink の正しい処理/クリーンアップ/など?
を使用したこの簡単な同期アニメーションについて考えてみましょうCADisplayLink
。
色々と問題があるようです。
(A:) では、link
null ではありませんが、実行ループから削除できない場合があります。(たとえば、誰かがそれを初期化した可能性がありますlink = link:CADisplayLink()
- クラッシュを試してみてください。)
第二に、(B :) 混乱しているように見えます... 確かにもっと良い (そしてもっと Swift な) 方法があります。
最後に (C :) アニメを壊したい場合は ... 落ち込んでいて、何が最善かわかりません。
そして実際には、A: と B: のコードは、クリーンアップ コールのような同じ呼び出し権である必要があります。
ios - タイムスタンプ vs CADisplayLink の 1/60
現在、CADisplayLink を使用して特定の減速アニメーションを実行しています。私は frameInterval を 1 に設定しました。一部のオープン ソース プロジェクトでは、フレーム更新間の時間差として 1/60 秒しか使用されていません。利用可能なタイムスタンプ メソッドもあることがわかりましたが、これは mach 形式です。iPhone のすべてのリフレッシュ レートが 60hz であり、したがって 1/60 を安全に使用できると仮定できますか? タイムスタンプ メソッドを使用する場合、どのように秒に変換すればよいですか?
よろしくお願いします。