CAEmitterLayer
ベジェ パス (4 つの制御点のうち、「8」のような閉じた形) に沿ってアニメーション化されたCAKeyframeAnimation
. ここで、パスに沿って (必ずしもパス上ではなく) タッチ指をスライドさせてアニメーションを制御したいと考えています。これはどのように可能であり、これは可能ですか?
1 に答える
1
CGpoint click;
最初の「ドラッグ」ポイントを記憶する変数を作成してから、ローカルNSEvent
ハンドラーを作成します...
[NSEvent addLocalMonitorForEventsMatchingMask: NSMouseMovedMask
| NSLeftMouseDownMask
handler:^(NSEvent *e) {
if ( e.type == NSLeftMouseDown ) click = e.locationInWindow;
else "yourDelta" = click - e.locationInWindow; // pseudoCode
return e;
}];
NSEventScrollWheelMask
「yourDelta」は、現在の場所からの最初のポイントのオフセットです...監視しe.deltaX
、値を確認することで、スクロールイベントでも同様の結果を得ることができe.deltaY
ます。
編集:私はiOSでのイベント処理に精通していませんが、同じ手法を通常のイベントハンドラーに適用できます...つまり。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
アニメーションを「探す」ことに関して..1つの可能な方法は[layer addAnimation:theNewAnimation]
、以前の'を使用することですが、0またはモデルの'toValue
を基にする代わりに、代わりに値を使用しますか?あなたの完全な内容を見ずに言うのは難しいです。fromValue
layer
layer.presentationLayer
CAKeyframeAnimation
于 2012-11-20T15:45:37.867 に答える