尚未动态添加按钮和文本框。
我有一个实例名称为slot1的movieclip。
在slot1里面我有一个名为newBtn1的按钮。
在新的Btn1里面,我有一个名为text 1的动态文本框。
slot1.newBtn1.text1.text = "Button";
//此代码给我一个错误
try
{
slot1.newBtn1.text1.text = "New Game";
}
catch (err:Error)
{
trace(err);
}
slot1.newBtn1.addEventListener(MouseEvent.CLICK, chooceCharacter)
这是下面的错误
ReferenceError: Error #1069: Property text1 not found on flash.display.SimpleButton and there is no default value.
这可以在As2中使用我很确定,但是As3很严格。
我正在使用Flash CC和Flash Develop来代码btw。
答案 0 :(得分:3)
短版
如果TextField是按钮中的唯一内容,那么
TextField (slot1.newBtn1.upState).text = "New Game";
长版
您无法以这种方式访问TextField,因为SimpleButton不是像MovieClip这样的动态类。您可以在Dynamic classes in Flash阅读。让我们假设你有一个实例名称为#34; myobj"并将此对象添加到MovieClip和Sprite。以下是访问每个对象的方法。
MovieClip is dynamic
mymovieclip.myobj;
Sprite is not dynamic
mysprite.getChildByName ("myobj");
另一件事是,SimpleButton不是像Flash IDE会让你相信的DisplayObjectContainer。它具有用于显示按钮的属性upState overState downState hitTestState
。因此,当您在IDE中的按钮的向上框架中绘制内容时,upState
属性将设置为Shape实例。如果将MovieClip放在Up框架中,upState
将是MovieClip,依此类推。
因此,如果您想要访问该对象,则必须通过状态属性执行此操作。在您的情况下,您在Up框架中有一个TextField,因此您必须以这种方式访问它
slot1.newBtn1.upState; //this will return a DisplayObject
TextField (slot1.newBtn1.upState); //this will cast it so you can use it