2009-12-06 13 views
7

हाय सब मैं जानना चाहता हूं कि प्रेषणAS3 में क्या है। मुझे गुगलिंग करते समय मुझे कोई जानकारी नहीं मिली। :( तो मदद कृपया मुझेफ्लैश AS3 में प्रेषण क्या है?

संपादित करें 1:

public static const SET_VOLUME:String = "setVolume"; 

private function onclick(evt:MouseEvent):void { 
      soundClip.scaleX = 0; 
      dispatchEvent(new Event(SET_VOLUME)); 

     } 

इसका मतलब है क्या ?? (

+1

@coderex, कृपया उत्तर दिए जाने पर आपके प्रश्नों को उत्तर दें! – alecmce

उत्तर

3

मूल रूप से यह वस्तुओं है कि कुछ हुआ है सूचित करने के लिए एक तंत्र है जब आप एक प्रेषण। घटना, उस घटना के लिए कुछ सुनने की जरूरत है।

यह मूल रूप से एक टेलीफोन कॉल (प्रेषण (नया कॉलवेन्ट (CallEvent.CALL)) बनाने की तरह है। यदि आप जिस व्यक्ति को आर करने की कोशिश कर रहे हैं आईएनजी में नहीं है, वे टेलीफोन कार्यक्रम नहीं सुन रहे हैं, इसलिए वे इसके बारे में कुछ भी नहीं कर सकते हैं। यदि वे हैं (addEventListener (CallEvent.Call, answerHandler)), वे इसका उत्तर दे सकते हैं, शायद इसे सीधे वॉयस मेल पर भेजें।

एक पूर्ण रैंडडाउन के लिए, इस लेख को एडोब से पढ़ने का प्रयास करें। इसलिए यह बहुत लायक है, जबकि यह साथ पकड़ के लिए हो रही

http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_02.html

प्रोग्रामिंग भाषाओं का एक बहुत की घटनाओं का इस्तेमाल करते हैं।

जेम्स

Edit1

के जवाब यह मेरे लिए लगता है कि आप एक विधि है कि कहीं न कहीं कुछ वस्तु पर एक MouseEvent.Click को संभालने के लिए स्थापित किया गया है है। जब ऐसा होता है तो यह अन्य वस्तुओं को स्केलएक्स प्रॉपर्टी 0 पर सेट करता है (इसे अदृश्य बना देता है)। फिर एक नया ईवेंट तब सेट सेट के साथ "setVolume" में प्रेषित किया जाता है। यह स्वयं कुछ भी नहीं करेगा। कहीं और यह शायद एक रेखा addEventListener ("setVolume", doSomethingMethod) की तरह दिखती है; । जब मूल विधि निकाल दी जाती है (प्रतीत होता है कि माउस क्लिक करें), तो doSomethingMethod को आग लगनी चाहिए।

+0

ठीक है मुझे एक संदेह है कृपया मेरे प्रश्नों को संपादित करें 1: सेक्शन – coderex

+0

जब ऑनक्लिक() को "सेटवॉल्यूम" कहा जाता है, तो किसी भी ग्राहक को सूचित किया जाएगा (जो addEventListener को कॉल करके "सेटवॉल्यूम" की सदस्यता लेता है)। –

14

एक उदाहरण मदद कर सकता है? आप फ्लैश आईडीई है, तो उन्हें अपनी समयावधि में इस प्रयास करें:

var ball:Shape = new Shape(); 
ball.graphics.beginFill(0xFF0000); 
ball.graphics.drawCircle(0, 0, 30); 
ball.graphics.endFill(); 
addChild(ball); 

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); 
addEventListener("myCustomEvent", myCustomEventListener); 

function mouseMoveListener(event:MouseEvent):void 
{ 
    dispatchEvent(new Event("myCustomEvent")); 
} 

function myCustomEventListener(event:Event):void 
{ 
    ball.x = stage.mouseX; 
    ball.y = stage.mouseY; 
} 

इस कोड है दर्शाता है कि कैसे addEventListener और dispatchEvent समकक्षों कर रहे हैं। MOUSE_MOVE ईवेंट आंतरिक रूप से प्रेषित किया जाता है, लेकिन आप MOUSE_MOVE जैसे प्रेषण का उपयोग करके अपनी खुद की घटनाओं को प्रेषित कर सकते हैं।

क्या इस कोड में होता यह है कि एक MOUSE_MOVE मंच से का पता चला है, बल्कि संभाल की तुलना में है कि mouseMoveListener में, आप एक और घटना (myCustomEvemt कहा जाता है) प्रेषण है जो myCustomEventListener में नियंत्रित किया जाता है बजाय। यह MOUSE_MOVE ईवेंट की तरह काम करता है, केवल आपने फ़्लैश प्लेयर की बजाय ईवेंट भेज दिया है।

उम्मीद है कि इससे मदद मिलती है।

4

कहें कि दो कक्षाएं हैं: ए और बी। अब आप चाहते हैं कि "functionAfterMyFun" मेरे Fun कक्षा बी में होने के बाद होनी चाहिए। फिर आप कक्षा बी के फ़ंक्शन myfun() में dispatchEvent का उपयोग करेंगे।

class A 
{ 

function A() 
{ 
    objectOfB.addEventListener("myFun_Happened", functionAfterMyFun) 
} 

function functionAfterMyFun() 
{ 
    //do something after myFun has happened in class B 
} 

} 

class B 
{ 
function myfun() 
{ 
dispatchEvent(new Event("myFun_Happened")); 
} 


} 
+0

1067: एक असंबद्ध प्रकार flash.events:Event के लिए स्ट्रिंग प्रकार के मूल्य का लागू बल। :(क्या मुझे कोई आयात याद आ रहा है? –

+0

आह क्षमा करें, एक टाइपो था। मैंने इसे फिर से संपादित किया। प्रेषण (नया ईवेंट ("myFun_Happened")); –

-1

addaddEventListener() अपने prenuptial समझौते बनाने के लिए की तरह है।
उदाहरण के लिए, अगर आपकी पत्नी के पास कोई और आदमी बाहर निकलता है, तो आपको अपनी पत्नी से $ 100 मिलेंगे। ठीक है, ऐसा होता है।
dispatchEvent() का अर्थ है कि आपको $ 100 मिलेंगे।

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