Dynamic TextField中的Actionscript问题

时间:2011-05-31 12:50:46

标签: flash actionscript-3 flash-cs3

可以在flash as3中的动态textField中创建一个单词作为按钮吗?

4 个答案:

答案 0 :(得分:4)

实际上与这个问题的其他答案相反,你可以(有点)。通过在Textfield对象的htmlText属性的字符串值中使用图像标记,您可以使用库中的显示对象作为其源。然后,您可以使用Textfield对象的getImageReference()方法获取具有库中显示对象的图像标记作为其源。下面是一个例子:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.events.MouseEvent;

    public class Main extends Sprite 
    {
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);

        }// end function

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var textField:TextField = new TextField()
            textField.width = 125;
            textField.height = 50;
            textField.htmlText = "This is a button <img id='myButton' src='MyButton'/> ";
            addChild(textField);

            var myButton:Sprite = textField.getImageReference("myButton") as Sprite;
            myButton.addEventListener(MouseEvent.CLICK, onMyButtonClick);

        }// end function

        private function onMyButtonClick(e:MouseEvent):void
        {
            trace("CLICKED!!!");

        }// end function

    }// end class

}// end package

enter image description here

答案 1 :(得分:2)

TextField中没有addChild方法。但是你可能会欺骗并将按钮放在TextField上(即将其添加到TextField的容器中)。

答案 2 :(得分:2)

简短的回答,没有。您需要创建一个包含按钮和文本字段的包装类/ MovieClip。

答案 3 :(得分:2)