Как изменить текст на кнопке в AS3 (динамически) - PullRequest
0 голосов
/ 31 января 2012

Я создал свой собственный класс кнопок с именем custom_btn.Я создал его на временной шкале и экспортировал для использования в ActionScript.Я могу сделать экземпляр моей кнопки, и добавить его на экран в порядке.

Кнопка имеет динамическое текстовое поле, в которое я хотел бы изменить текст. Я попытался дать текстовому полю имя на временной шкале и получить к нему доступ, когда я нажимаю кнопку, но я получаюошибка (я думаю, это потому, что имя не сохраняется в классе).Как мне изменить текст?

Я хочу сделать что-то вроде этого:

var myButton:custom_btn = new custom_btn();
myButton.caption = "foo";

Ответы [ 3 ]

0 голосов
/ 01 февраля 2012

Несколько вещей, которые вы можете попробовать:

1) Старайтесь не преобразовывать текстовое поле в собственный символ. Я редко нахожу это необходимым. Вместо этого поместите поле на сцену и назовите его. Если вы назовете его «заголовок», то код, который вы хотите установить, будет выглядеть так:

myButton.caption.text = "foo";

2) Объявите открытую переменную в вашем классе с именем, совпадающим с вашим текстовым полем.

public var caption:TextField;

3) Используйте системный шрифт - по крайней мере, пока. Это позволит убедиться, что что-то появляется, и это не проблема шрифта. Если вы решите переключиться на несистемный шрифт, убедитесь, что вы правильно вставили нужный шрифт.

Надеюсь, это поможет вам.

0 голосов
/ 25 марта 2012

Итак, получается, что мне нужно было сделать кнопку MovieClip. Создание кнопки MovieClip позволило мне дать текстовому полю имя. Я назвал MovieClip «testBtn_mc», а динамическое текстовое поле внутри него называется button_txt. Код выглядит так:

var button:MovieClip;
button = new testBtn_mc();
button.button_txt.text = "New Text";
button.buttonMode = true;
button.mouseChlidren=false;

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 31 января 2012

Кажется, здесь есть некоторая путаница.

Если вы создали свой собственный класс с именем custom_btn (который в идеале должен начинаться с заглавной буквы), попробуйте это ...

Убедитесь, что выв вашей библиотеке есть символ с именем Custom_btn.

Дважды щелкните по символу, чтобы открыть сцену и добавить динамическое текстовое поле.При необходимости вставьте глифы шрифтов и присвойте им имя экземпляра txt.

Вернувшись в библиотеку, убедитесь, что в свойствах символа отмечены галочки «Экспорт для ActionScript» и «Экспорт в кадре 1».

Убедитесь, что путь Class: указывает на файл Custom_btn.as.например, com.Custom_btn, если файл Custom_btn.as находится в папке с именем com.

package com {

    import flash.display.MovieClip;

    public class Custom_btn extends MovieClip {

        public function Custom_btn() {
            // constructor code
        }
    }

}

Тогда в вашем классе документов:

var myButton:Custom_btn = new Custom_btn();

addChild(myButton);

myButton.txt.text = "foo";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...