Проблема Actionscript в динамическом TextField

Можно ли сделать слово как кнопку внутри динамического textField во flash as3?

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

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

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

Другие вопросы по тегам