2010-01-12 9 views
12

मैं एक मूवी क्लिप को रिवर्स में खेलने की कोशिश कर रहा हूं जब मैं इसे से माउस_आउट करता हूं (यह माउस_ओवर पर चलता है)।फ़्लैश - रिवर्स में मूवी क्लिप चलाएं?

मेरे actionscript इस प्रकार है:

mc.stop(); 
mc.addEventListener(MouseEvent.MOUSE_OVER,mover); 
mc.addEventListener(MouseEvent.MOUSE_OUT,mout); 

function mover(e:MouseEvent):void 
{ 
    mc.play(); 
} 

function mout(e:MouseEvent):void 
{ 
    //Play in reverse 
} 

मैं यह कैसे प्राप्त होगा?

धन्यवाद

उत्तर

15

का सबसे अच्छा तरीका एक ENTER_FRAME घटना श्रोता उपयोग करने के लिए किया जाएगा। मूल रूप से यह आप क्या करना

function mover(e:MouseEvent):void { 
    stopPlayReverse(); 
    mc.play(); 
} 

function mout(e:MouseEvent):void { 
    this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true); 
} 

function playReverse(e:Event):void { 
    if (mc.currentFrame == 1) { 
     stopPlayReverse(); 
    } else { 
     mc.prevFrame(); 
    } 
} 

function stopPlayReverse():void { 
    if (this.hasEventListener(Event.ENTER_FRAME)) { 
     this.removeEventListener(Event.ENTER_FRAME, playReverse); 
    } 
} 

यह रिवर्स में अपने मूवीक्लिप अदा कर सकता है जब तक यह सीमा 1 हिट, तो यह बंद हो जाएगा चाहते हैं।

+0

धन्यवाद एक बहुत है कि पूरी तरह से काम किया! – Probocop

+0

कोई समस्या नहीं है। जैसा कि सुझाव दिया गया है, आप बिल्ट-इन ट्विन क्लास या किसी अन्य ट्विनिंग लाइब्रेरी का उपयोग करने का प्रयास कर सकते हैं। ENTER_FRAME दृष्टिकोण के बारे में सबसे अच्छी बात यह है कि अपने एनीमेशन अपने फ्रेम दर की परवाह किए बिना पिछड़े या आगे उतना ही समय लगता है। – sberry

5

यदि गति अनुमति देता है, तो आप एक ट्विन का उपयोग कर सकते हैं (उदाहरण के लिए यदि आप अल्फा, स्थान या स्केल को बदलना चाहते हैं)। माउसऑट पर आप ट्युन के लिए .yoyo() को कॉल कर सकते हैं, जो इसे विपरीत में चलाएगा।

कुछ इस तरह:

var tween:Tween; 

mc.addEventListener(MouseEvent.MOUSE_OVER,mover); 
mc.addEventListener(MouseEvent.MOUSE_OUT,mout); 

function mover(e:MouseEvent):void 
{ 
    tween = new Tween(obj, "alpha", None.easeNone, 1, 0, 1, true); 
} 

function mout(e:MouseEvent):void 
{ 
    tween.yoyo(); 
} 
1

यदि आपका ट्वीन कि सभी गंभीर आप सचमुच रिवर्स में फ्रेम के एक नया सेट कर सकते हैं और सिर्फ इतना है कि मुख्य-फ़्रेम से इसे खेलने नहीं है।

वह गरीब आदमी का रिवर्स ट्विन है।

//Boolean and Event.ENTER_FRAME 
var reversing:Boolean = false; 
AddEventListener(Event.ENTER_FRAME, reverse); 

function reverse(e:Event){ 
    if(reversing) 
    { 
     //mc is displaying previous frame every frame 
     mc.prevFrame(); 

     //until the currentFrame is 1 
     if(mc.currentFrame == 1) 
      reversing = false; 
    } 
} 

आपका //Play in reverse सेट reversing = true;

+0

बहुत सच है, और यह उम्र के लिए कैसे किया गया है। – sberry

0

एक बूलियन जो एक ट्रिगर और Event.ENTER_FRAME रूप में काम करता का उपयोग करके आप फ्रेम उल्टा करने के लिए निम्न कर सकते हैं रिवर्स के लिए सही ऑब्जेक्ट खोजने के लिए मूवी क्लिप ऑब्जेक्ट। इस तरीके से आप अपने इच्छित बच्चे के साथ उपयोग करने में मदद कर सकते हैं। आप इसे प्राप्त कर सकते हैं:

fMoveBack (this.getChildByName ("my_clip"));

function fMoveBack(my_clip:MovieClip):void { 
    this.addEventListener(Event.ENTER_FRAME, playReverse(my_clip)); 
} 

function playReverse(mc:MovieClip):Function { 
    return function playReverse(e:Event):void { 
     if (mc.currentFrame == 1) { 
      stopPlayReverse(mc); 
     } else { 
      mc.prevFrame(); 
     } 
    }; 
} 

function stopPlayReverse(mc:MovieClip):void { 
    if (this.hasEventListener(Event.ENTER_FRAME)) { 
     this.removeEventListener(Event.ENTER_FRAME, playReverse); 
    } 
} 
0

आप इसे पारित कर सकते हैं होगा:

संबंधित मुद्दे