在AS3中的类定义文件中创建元素(Flash CS4)
我已经使用GUI创建了一个矩形,我变成了一个按钮符号(SimpleButton)。 然后,我编辑了按钮,使其具有4种不同的按钮状态和顶部的文本层。 然后,我为这个对象创建了一个类定义文件,以便在将此按钮的实例添加到舞台时,我可以动态更改标签文本(文本图层)。
我能够创建并链接一个类文件(DynamicButton.as),但是当我尝试访问我在按钮上创建的文本字段时,出现以下错误:
“通过带有静态类型com.examples:DynamicButton的引用访问可能未定义的属性btnLabel。”
当我无法让它工作时,我决定尝试直接在类定义文件中添加TextField,使用以下代码:
package com.examples
{
import flash.display.Sprite;
import flash.display.SimpleButton;
import flash.text.TextField;
public class DynamicButton extends SimpleButton
{
public function DynamicButton(btnText:String="Click Me")
{
placeText();
labelText.text = btnText;
}
//property variables
//create a text box to hold the button label
private var labelText:TextField = new TextField();
//create a displayObject to hold the text
private var labelSprite:Sprite = new Sprite();
private function placeText():void {
labelText.width = this.width;
labelText.height = this.height;
labelText.x = this.x;
labelText.y = this.y;
labelText.visible = true;
labelSprite.addChild(labelText);
this.parent.addChild(labelSprite);
}
}
}
问题是我似乎无法将TextField添加到SimpleButton,因为它不是显示对象。 所以,我尝试将它添加到简单按钮的父级(我想,我只是把它放在按钮的上方)。 但后来我得到一个“空对象引用”。 错误。
所以,我有两个问题
好吧,它花了几天时间和一些反省,但似乎我的问题源于你无法将孩子添加到SimpleButton的事实。 我改变了我的类定义扩展一个影片剪辑,然后创建了一个名为“听()”我叫构造所添加的侦听“过”的对象时,“向下”功能和“out”鼠标状态,以模仿一个简单的按钮。 我还必须在构造函数中放入“stop()”命令,以便每个按钮都不会在所有状态中循环。 最终的类定义如下所示:
package com.examples
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class DynamicButton extends MovieClip
{
public function DynamicButton(btnText:String="Click Me")
{
stop();
this.btnText_btn.text = btnText;
listen();
}//constructor
private function listen():void {
this.addEventListener(MouseEvent.MOUSE_OVER,function(){
gotoAndStop(2);
}//anon mouseover fcn
);
this.addEventListener(MouseEvent.MOUSE_DOWN,function(){
gotoAndStop(3);
}//anon mousedown fcn
);
this.addEventListener(MouseEvent.MOUSE_OUT,function(){
gotoAndStop(1);
}//anon mouseout fcn
);
}
}//class definition
}//package
链接地址: http://www.djcxy.com/p/17847.html
上一篇: created elements in a class definition file in AS3 (Flash CS4)
下一篇: flash cs4 combobox component totally ignore styles and events