2010-12-21 18 views
11

पर असाइनमेंट का पता लगाने में सक्षम नहीं होगा। मैं फ्लेक्स 3 से फ्लेक्स 4 में एक एप्लिकेशन माइग्रेट कर रहा हूं। कुछ मामलों में पॉपअप विंडो हैं जिनमें चौड़ाई और ऊंचाई एप्लिकेशन की चौड़ाई और ऊंचाई से जुड़ी है ।डेटा बाध्यकारी "टॉपलेवल अनुप्रयोग"

width="{Application.application.width - 24}" 
height="{Application.application.height - 32}" 

आवेदन। आवेदन 4.0 में बहिष्कृत किया गया है। तो मैं

width="{FlexGlobals.topLevelApplication.width - 24}" 
height="{FlexGlobals.topLevelApplication.height - 32}" 

के साथ इस प्रतिस्थापित अब संकलक चेतावनी देता है कि डेटा बाइंडिंग topLevelApplication के लिए पता नहीं किया जा सकता है देता है। वहाँ है एक और (bindable) संपत्ति कहीं है कि मैं पहले की तरह ही कार्यक्षमता प्राप्त करने के लिए उपयोग कर सकते हैं:

डाटा बंधन को का पता लगाने के "topLevelApplication" करने के लिए कार्य

मेरा प्रश्न है सक्षम नहीं होगा ?

+0

क्या कोई कारण है कि आपको बाध्यकारी होने की आवश्यकता है? मुझे नहीं लगता कि शीर्ष स्तर की ऊंचाई और चौड़ाई मान लागू होते हैं जब तक कि swf या ब्राउज़र का आकार बदल नहीं जाता है, तब तक आपके सभी नियंत्रण किसी भी तरह से फिर से खींचे जाएंगे (जब तक कि मैं निश्चित रूप से गलत नहीं हूं)। –

उत्तर

21

बस प्रकार वस्तु के एक चर बनाने और इसे bindable बनाने:

[Bindable] 
private var application:Object = FlexGlobals.topLevelApplication; 

और फिर चर का उपयोग करें।

height="{application.height}" 
+2

इससे चेतावनी दूर हो जाती है, लेकिन यह अनावश्यक है और यह वैरिएबल को आवंटित मान में किए गए किसी भी बदलाव को प्रतिबिंबित नहीं करता है। यह फिक्स भ्रामक है। – jediz

2

यह एक कलाकारों के साथ काम करना चाहिए: क्योंकि FlexGlobals.topLevelApplication एक वस्तु के रूप में लिखा गया

height="{(FlexGlobals.topLevelApplication as Application).height - 32}" 

कारण है कि यह आपके वर्तमान कोड के साथ काम नहीं कर रहा है।

+0

हाय जेम्स, मैंने यह कोशिश की है, लेकिन अभी भी चेतावनियां प्राप्त कर रही हैं। कोई अन्य विकल्प? धन्यवाद। – Bocaxica

+0

फ्लेक्स 4.0 या 4.1? –

+0

फ्लेक्स एसडीके 4.1 :) – Bocaxica

2

मैं आधे घंटे के लिए फंस गया था और पता चला कि Bindable केवल एक पूंजी 'बी' के साथ काम करता है, मैं यह किया था और यह मेरी समस्या हल।

तो, बाध्य करने योग्य के बजाय Bindable लिखें क्योंकि निर्दिष्ट वर्ग bindable.Bindable है।

1

मैं एक समान चेतावनी के साथ संघर्ष कर रहा था, लेकिन एक ऑब्जेक्ट समस्या के बजाय (जिसे [बाइंडेबल] उपसर्ग के साथ हल किया गया है) मैं वीबीओक्स का उपयोग कर रहा था। मुझे अपने वीबॉक्स में कितने बच्चे हैं इस पर निर्भर करते हुए मुझे छवि के स्रोत को बदलने की जरूरत है। तो इसका समाधान केवल "इस" लॉल का उपयोग कर रहा है। यहाँ एक उदाहरण है:

<mx:Image width="24" height="24" source="{this.vbBox1.getChildren().length>1 ? 'assets/icons/forwardDisable.png':'assets/icons/forward.png'}"/> 

आप का उपयोग न तो "इस" आईडीई आपको इच्छित वस्तु के साथ है करने के लिए इसी तरह की एक चेतावनी दिखाई देगा। मुझे उम्मीद है कि यह दूसरों की मदद करता है!

बेस्ट सादर

3

तो आप का उपयोग {this.screen.height} अपने चेतावनी दूर जाना चाहिए।

टिम

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