Проблема Actionscript в динамическом TextField - PullRequest
0 голосов
/ 31 мая 2011

Можно ли сделать слово кнопкой в ​​динамическом текстовом поле во flash as3?

Ответы [ 4 ]

4 голосов
/ 31 мая 2011

На самом деле вопреки другим ответам на этот вопрос вы можете (вроде). Используя тег image в строковом значении для свойства htmlText объекта Textfield, вы можете использовать экранный объект в библиотеке в качестве его источника. Затем вы можете использовать метод getImageReference() объекта Textfield, чтобы получить тег изображения, который имеет экранный объект из библиотеки в качестве источника. Вот пример:

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

2 голосов
/ 31 мая 2011

Краткий ответ, нет.Вам нужно создать класс-обертку / MovieClip, содержащий как кнопку, так и текстовое поле.

2 голосов
/ 31 мая 2011

в TextField нет метода addChild.Но вы можете обмануть и поместить кнопку поверх TextField (т.е. добавить его в контейнер TextField).

...