मेरे पास CAEmitterLayer
CAKeyframeAnimation
के साथ एक बेजियर पथ (बंद फॉर्म, एक '8' की तरह, चार नियंत्रण बिंदुओं के साथ एनिमेटेड) के साथ एनिमेटेड है। अब मैं एनीमेशन को टच-उंगली की एक स्लाइड (लेकिन जरूरी नहीं) पथ से नियंत्रित करना चाहता हूं। यह कैसे संभव है और यह भी संभव है?स्पर्श जेस्चर के साथ CAKeyframe एनीमेशन को कैसे नियंत्रित करें?
उत्तर
अपने प्रारंभिक "खींचें" बिंदु याद करने के लिए एक 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;
}];
"yourDelta" वर्तमान स्थान से कि प्रारंभिक बिंदु के ऑफसेट है ... आप NSEventScrollWheelMask
पर निगरानी करके स्क्रॉल ईवेंट के साथ समान परिणाम भी प्राप्त कर सकते हैं ... और e.deltaX
और e.deltaY
मानों को देखकर।
संपादित करें: मैं आईओएस पर ईवेंट हैंडलिंग से परिचित नहीं हूं .. लेकिन उसी तकनीक को सामान्य ईवेंट हैंडलर के साथ लागू किया जा सकता है ... यानी।
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
के रूप में करने के लिए "की मांग" अपने एनीमेशन .. एक संभव तरीका करने के लिए बस [layer addAnimation:theNewAnimation]
है, 0, या अपने मॉडल layer
... उपयोग की s ', लेकिन इसके बजाय fromValue
आधारित के s' अपने पिछले toValue
का उपयोग कर इसके बजाय layer.presentationLayer
मूल्य? अपने CAKeyframeAnimation
की पूरी सामग्री को देखे बिना कहना मुश्किल है।
इसे 'कोको-टच' के साथ टैग किया जा रहा है, मुझे लगता है कि ओपी आईओएस डिवाइस पर ऐसा करने का एक तरीका ढूंढ रहा था। डेल्टा मूल्य के आधार पर CAKeyframeAnimation 'तलाश' करने का कोई तरीका है? – Marc
क्या आप कण उत्सर्जित करते हैं जहां उपयोगकर्ता अपनी उंगली खींच रहा है? इसके अलावा, आपने क्या प्रयास किया है? –
मैं उद्देश्य-सी के लिए बहुत नया हूं और मुझे पता नहीं है कि एक एनीमेशन का नेतृत्व कैसे करें (इसे एक सीएइमिटरलेयर या यूआईएममेज व्यू या लेयर) एक उंगली स्पर्श आंदोलन के साथ पथ के साथ। मैं हर छोटी संकेत से खुश रहूंगा ... मैंने एक मुखौटा-छवि का उपयोग करने की कोशिश की जिसे मैंने पथ पर रखा था जिसने मुझे बताया कि उंगली के बारे में मुझे बताया गया था या पथ के अलावा, लेकिन कण भी पथ के अलावा उत्सर्जित करते थे। – headkit
स्थिति संपत्ति को सेट करके उपयोगकर्ताओं की उंगली की स्थिति में एमिटर परत को स्थिति में क्यों न बदलें? उस बिंदु को प्राप्त करना जहां उपयोगकर्ता कठिन नहीं है। –