0

我正在学习 as3,并从 adobe 在线教程中构建一些练习。我正在尝试做一个非常简单的任务,我认为我的代码与教程完全相同,但它不起作用!我就是搞不定...

我正在尝试从该按钮类更改按钮中的文本字段。

按钮称为GameButton,文本字段称为blabel,是经典文本和动态文本。这是 GameButton 类的代码。而不是像下面那样显示“单击”,它只是将标签更改为数字 1。跟踪语句正在工作等它会去那里,但文本没有通过或其他东西。请帮忙!!!

包裹 {

import flash.display.MovieClip;


public class GameButton extends MovieClip {


    public function GameButton() {
        trace("Gamebutton has been created");
        this.blabel.text = "Click";
        stop();

    }

}

}

4

1 回答 1

0

总而言之,您可以在代码中创建按钮,或者您可以尝试侦听来自您将子对象添加到的父对象(可能是舞台,也可能是另一个 DisplayObjectContainer)的添加到舞台事件。监听方法的问题是我不确定你如何知道哪个孩子刚刚分派了事件而不编写一些混乱的代码。我认为第一个选项通常更容易并且更有意义,唯一需要注意的是,您必须使用 x/y 坐标放置实例或应用 scaleX、scaleY 来拉伸或收缩对象,而不是使用创作工具进行。您仍然可以使用 Flash 的拖放部分来计算坐标并构建单个影片剪辑等。

足够多的讨论一些代码:

package
{
    import flash.display.MovieClip;


    public class GameButton extends MovieClip {

        private var blabel:TextField; //This can be any display object class or a class that extends from a display object class (Sprite, MovieClip, MyCustomButton etc.)

        public function GameButton() {
            blabel = new TextField(); //The type after new, should be the same, or a sub-class (extension) of the type used in the variable declaration above
            addChild(blabel);

            //blabel.x=10; //optional over ten pixels from left
            //blabel.y=10; //optional down ten pixels from top
            //blabel.scaleX=.5; //optional half the width
            //blabel.scaleY=2; //optional 2 times taller

            trace("Gamebutton has been created");
            blabel.text = "Click";
            stop();

        }

    }
}
于 2013-06-28T18:35:57.070 回答