2009-10-31 22 views
6

मानक फ्लेक्स बटन लेबल टेक्स्ट को शब्द लपेटने की अनुमति नहीं देता है। मैंने इंटरनेट में पढ़ा है कि इसे संभालने के लिए कुछ अनियंत्रित तरीके हैं लेकिन मैं उन्हें काम पर नहीं मिला। अगर कोई मुझे एक छोटा सा उदाहरण पोस्ट कर सकता है तो बहुत अच्छा होगा!एडोब फ्लेक्स: बटन लेबल में शब्द लपेटें

+0

आपको आगे बढ़ना चाहिए और ईसाई नुनसिटो के जवाब को स्वीकार करना चाहिए। – Panzercrisis

उत्तर

15

अनिवार्य रूप से आपको बटन के टेक्स्टफ़िल्ल्ड नियंत्रण (बहुभाषी और वर्डप्रेस) पर कुछ संरक्षित गुण सेट करने की आवश्यकता है, जिसे आप बटन क्लास को विस्तार किए बिना नहीं कर सकते हैं। तो अगर आप एक नया वर्ग है कि बटन प्रदान करता है और उन गुणों सेट और एक छोटे से काम करने के लिए करता है बनाने चीजें सही ढंग से मापने:

package 
{ 
    import flash.text.TextFieldAutoSize; 
    import mx.controls.Button; 

    public class WrappingButton extends Button 
    { 


     public function WrappingButton() 
     { 
      super(); 
     } 

     override protected function createChildren():void 
     { 
      super.createChildren(); 

      textField.multiline = true; 
      textField.wordWrap = true; 
      textField.autoSize = TextFieldAutoSize.CENTER; 
     } 

     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
     { 
      super.updateDisplayList(unscaledWidth, unscaledHeight); 
      textField.y = (this.height - textField.height) >> 1; 

      height = textField.height + getStyle("paddingTop") + getStyle("paddingBottom"); 
     } 
    } 
} 

... तुम इतनी तरह अपने MXML में है कि नियंत्रण ड्रॉप कर सकते हैं:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*"> 

    <local:WrappingButton label="The quick brown fox jumped over the lazy dog." width="100" paddingTop="10" paddingBottom="10" /> 

</mx:Application> 

उम्मीद है कि यह मदद करता है! यदि आपके पास हैं तो प्रश्नों के साथ वापस पोस्ट करें।

+1

ग्रेट घटक, लेकिन मैं इसे एक कस्टम आइटम रेंडरर के रूप में उपयोग करने का प्रयास कर रहा हूं, और अद्यतन डिस्प्लेलिस्ट() को अनंत लूप में बुलाया जाता है। – Laramie

+0

मैं फ्लैश बिल्डर 4.6 में एक ही घटक का उपयोग कैसे कर सकता हूं? जैसा कि मुझे 'टेक्स्टफ़िल्ल्ड' पर त्रुटि मिलती है "अपरिभाषित संपत्ति की पहुंच" – abi1964

4

मैं

<s:Button label="Top two&#13;states result" height="100%" width="100%" icon="@Embed(source='assets/bar.png')" chromeColor="#A3F4FD"/> 

उपयोग कर रहा हूँ और यह बहु लाइन लेबल करता &#13;

का उपयोग कर की कोशिश कर रहा।

+0

बहुत बढ़िया, एक आकर्षण की तरह काम करता है! – Ska

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