flash - फ्लेक्स तत्व शामिल हैं




flex actionscript (2)

फ्लेक्स में, हम इस के माध्यम से एक तत्व को राज्य प्रदान कर सकते हैं:

<s:Button id="mybtn" includeIn="mystate" label="button label"/>

हम एक्शन स्क्रिप्ट के साथ शामिल कैसे कर सकते हैं?

धन्यवाद।


इसमें includeIn छद्म विशेषता केवल includeIn भाषा में मौजूद है। मैं इसे एक छद्म-विशेषता कहते हैं क्योंकि यह किसी संपत्ति या एक शैली (आपके उदाहरण में बटन वर्ग के) के लिए मैप नहीं करता है।

इसके बजाय यह पुराने एमएक्स AddItems टैग का एक लघुकथा अंकन है। उस सिंटैक्स में आपका उदाहरण कुछ ऐसा दिखाई देगा:

<mx:states>
    <mx:State name="normal"/>
    <mx:State name="mystate">
        <mx:AddItems items="{mybtn}"/>
    </mx:State>
</mx:states>

<mx:Button id="mybtn"/>

मैं इसका उल्लेख करता हूं, क्योंकि इसमें शामिल एक्शन स्क्रिप्ट कोड बहुत ज्यादा समान है। यह है जो ऐसा लग रहा है:

states = [
    new State ({
        name: "normal",
        overrides: []
    }),
    new State ({
        name: "mystate",
        overrides: [
          new AddItems().initializeFromObject({
            itemsFactory: _TestFlex_Button1_factory,
            destination: null,
            position: "first"
          })
        ]
    })
];

अंतर यही है कि यह बटन को इन्स्तांत करने के लिए एक कारखाने का उपयोग करता है।
ध्यान दें कि यदि आप एक्शन स्क्रिप्ट कोड में रुचि रखते हैं जो एमएक्सएमएल कोड से उत्पन्न होता है, तो आप इसे keep-generated-actionscript ध्वज को कंपाइलर ( mxmlc संकलक विकल्प देखें) के पास।

यदि आप वास्तव में 'मैन्युअल रूप से उस तर्क को लिखना चाहते हैं (मैं नहीं होता), तो setCurrentState () को ओवरराइड करना आसान हो सकता है या CURRENT_STATE_CHANGE इवेंट को सुन सकते हैं, और addElement() या कॉल को addElement() currentState


राज्य एक एमएक्सएमएल अवधारणा हैं, एक ऐसी अवधारणा नहीं है जैसा कि आप को ओवरराइड फ़ंक्शन सेट में अपना स्वयं का तर्क लिखना है वर्तमान स्थिति सेट करें।

override public function set currentState(value:String):void
{
  super.currentState = value;
  //write your logic for states
}