2010-03-18 16 views
6

मैं फ्लेक्स के साथ काम कर रहा हूं, लेकिन एक्शनस्क्रिप्ट विचार उतना ही अच्छा है।एक्शनस्क्रिप्ट फ्लेक्स, एसएफएफ को ब्राउज़र चौड़ाई कैसे भेजना है

फ्लेक्स <s:Application> टैग height="100%" width="100%" है तो swf ब्राउज़र के रूप में ब्राउज़र आकार दिया जाता है फिट बैठता है।

मेरी समस्या यह है कि मेरे पास <s:Label> है जो मुझे ब्राउज़र के वास्तविक/वर्तमान आकार के आधार पर स्थिति की आवश्यकता है।

<s:Application height="100%" width="100%"> 
    ..... 
    <s:Label text="hello" x="?" y=">" /> 

</s:Application> 

मैंने सुना है यह Application.application.width; उपयोग करना संभव है, लेकिन मैं एक संकलन त्रुटि मिलती है, यह है कि क्या है पता नहीं है कि।

कोई विचार यह कैसे करना है। ब्राउज़र में आकार बदलने के बाद, मैं ब्राउजर में एसएफएफ का वर्तमान आकार प्राप्त करने की कोशिश कर रहा हूं।

उत्तर

3

की तरह एक eventdelegate की कोशिश कर सकते के रूप में मैं निम्नलिखित काम करना चाहिए बता सकते हैं। एप्लिकेशन.प्लिकेशंस बस वही है जैसा कि प्रदान किया गया है आप मूल आवेदन में हैं। बाध्यकारी प्रारंभ करने के बाद आकार बदलने के लिए अनुमति देनी चाहिए।

<s:Application height="100%" width="100%"> 
    ..... 
    <s:Label text="hello" x="{width}" y="" /> 

</s:Application> 

संपादित करें: मैंने अभी जांच की है और यह काम करता है। अपने लेबल को मंच के बीच में रखने के लिए आपको बस इसे

<s:Application height="100%" width="100%"> 
     ..... 
     <s:Label text="hello" x="{width/2}" y="{height/2}" /> 

</s:Application> 
+0

लगता है कि यह फ्लेक्स 3 में भी काम करता है :) –

+0

मैंने अंतिम टिप्पणी हटा दी। यह 3 में अच्छा है – adamcodes

0

आप केवल मंच आकार का पता सकता है जब तत्व मंच के अंदर जोड़ा जाता है, आप जहाँ तक इस

 
app.addEventListener(Event.ADDED_TO_STAGE,init); 
private function init(evt:Event):void{ 
    trace(stage.stageWidth); 
    trace(stage.stageHeight); 
} 
+0

हालांकि ब्राउज़र आकार पर अपडेट नहीं होगा, लेकिन केवल प्रारंभिक आकार पर। –

+0

चरण -addEventListener (Event.RESIZE, resizeHandler) जैसे उपयोग करने के लिए एक RESIZE ईवेंट भी है। http://www.adobe.com/devnet/flash/articles/liquid_gui_03.html –

0

ब्राउज़र आकार बदलने पर जावास्क्रिप्ट फ़ंक्शन को कॉल करना होगा। वहां से एसएफएफ का संदर्भ प्राप्त करें, और लेबल का आकार बदलने के लिए एएस फ़ंक्शन को कॉल करें। ब्राउज़र की चौड़ाई/ऊंचाई पास करें।

उदाहरण देखें here

अद्यतन: सुधार: ExternalInterface जे एस के रूप में चला जाता है।

0

यह पूरी तरह स्पष्ट नहीं है कि आप क्या करने का प्रयास कर रहे हैं। x और y स्थितित्मक तत्व हैं, width और height आकार तत्व हैं। यदि आप लेबल को पोजिशन कर रहे हैं तो आपको और y के बजाय top, left, right और bottom का उपयोग करना चाहिए यदि आप इसे मूल नियंत्रण आकार के आकार के रूप में आकार देना चाहते हैं।

यदि आप केंद्रित केंद्र चाहते हैं तो आप horizontalCenter और verticalCenter का उपयोग कर सकते हैं।

आप एक panel या एक canvas तुम सिर्फ अपने left और right 0 पर सेट और माता पिता के कैनवास आकार हो सकता है की तरह एक लेआउट नियंत्रण के अंदर डाल दिया है।

यदि आपका लेबल हमेशा आकार के आधार पर एक अलग स्थान पर है, तो आप स्थिति सेट करने के लिए updateDisplayList ओवरराइड कर सकते हैं। यह धारण करता है कि क्या आप इसे लेआउट नियंत्रण में डालते हैं या नहीं।

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