Создание нескольких кнопок с динамическим текстом в AS3 - PullRequest
0 голосов
/ 22 июня 2011

Я бы хотел создать игру Hangman, но вместо того, чтобы игрок вводил букву, я бы хотел, чтобы на экране было 26 нажимаемых кнопок.Теперь я могу сделать 26 символов, но это кажется смешным, когда я могу создать класс letter_button.as и просто создать 26 экземпляров letter_button, где я могу просто сделать что-то вроде letter_button.letter_id, чтобы получить значение.

Это легко.Сложная частьЧто ж.1- Как мне создать кнопку, которая будет принимать динамический текст?

2 - Как мне добавить эти кнопки на сцену?Будет ли работать parent.addChild (new letter_button (letter))?Или мне нужно что-то еще?

Вот как далеко я продвинулся в своем решении, скажите мне, если я лаю не на том дереве.Для начала я создал кнопку «Letter_Button».На нем есть текстовое поле с именем "letter_text".Это мувиклип, и он ссылается на Letter_Button.as

Вот лоскутный, полусгоревший тестовый код:

package  {
import flash.display.MovieClip;

public class hangman_manager extends MovieClip{

    public function hangman_manager() 
   {
        addChild(new Letter_Button("a"));
    }

}

}

И Letter_Button.as:

package  {
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.events.Event;

public class Letter_Button extends SimpleButton {

    public function Letter_Button(letter:String) {
        x = 250 ;
        y = 250 ;
        trace ("Letter is"+ letter);
        addEventListener(Event.ADDED_TO_STAGE,onAddedToStage);

    }


    public function onAddedToStage(event:Event):void
    {
        this.letter_text.text="A"; 
    }

}

}

Проблема заключается в том, что я продолжаю получать ошибку нулевого объекта, я Угадаю, потому что кнопка letter_ еще не существует.Я надеялся, что onAddedToStage это исправит, но это не так.Как я здесь не так?И я изобрел нелепый способ сделать это?Есть ли лучший способ?

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Один из способов, который я проделал примерно так же, - это создание фрагмента ролика с слоем bg для графического изображения кнопки и второго слоя с динамическим текстовым полем с именем экземпляра «buttonText».

Затем я подключил мувиклип в библиотеке к новому классу под названием «MyButton».Конструктор для MyButton требует строку.Конструктор вызывает метод setText (txt: String), который выполняет:

this['buttonText'].text = txt;

Вы также можете добавить прослушиватели MouseEvent к каждой кнопке, чтобы вызвать метод returnButtonValue, который будет возвращать переменную, которая содержит текст этой кнопки..

Чтобы добавить их, на сцену просто сделайте:

button1 = new MyButton("desired text value");
addChild(btn1);
0 голосов
/ 22 июня 2011

Там уже класс LabelButton в as3.Посмотрите на ссылку здесь

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