Frage

Ich bin das Etikett zu meiner Linkbutton direkt aus einem String Fütterung ich von einem Google-API erhalten, die html setzt das Etikett zu formatieren.

Ich möchte Linkbutton verlängern, dies zu ermöglichen. Ich schrieb mir eine Klasse html Text für die Beschriftung und dass Aspekt davon funktioniert, aber jetzt den Hintergrund zu ermöglichen, die erscheint, wenn Sie schweben viel zu groß ist. Ich habe versucht, measure () außer Kraft zu setzen, dies zu beheben, aber ich habe keine Ahnung, wie. Hier ist die Klasse schrieb ich:

package com.kranichs.components
{
    import mx.controls.LinkButton;

    public class HTMLLinkButton extends LinkButton
    {
        protected var _isHTML:Boolean;

        public function HTMLLinkButton()
        {
            super();
        }

        [Bindable]
        public function set isHTML(value:Boolean):void
        {
            _isHTML = value;
        }
        public function get isHTML():Boolean
        {
            return _isHTML;
        }

        override protected function updateDisplayList(unscaledWidth:Number,
                                                  unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            if(_isHTML)
            {
                textField.htmlText = label;
            }
        }



    }
}
War es hilfreich?

Lösung

die measure () Funktion ist der Schlüssel.

Angenommen, Sie eine Flex-Kompatibilität Version verwenden> = 3,0, ist der Schlüssel Linie in Button.measure ():

var lineMetrics:TextLineMetrics = measureText(label);

Sie müssen dies wie etwas ändern:

var lineMetrics:TextLineMetrics = _isHTML ? measureHTMLText(label) : measureText(label);

Sie müssen wahrscheinlich die Maßfunktion von Schaltfläche in Ihre Klasse kopieren und diese Änderung vornehmen.

Wenn Sie das tun, werden Sie die meisten likley müssen den internen Namespace importieren, wie folgt aus:

import mx.core.mx_internal;

use namespace mx_internal;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top