gpt4 book ai didi

带文本的 Flash 简单按钮

转载 作者:行者123 更新时间:2023-12-02 15:29:43 26 4
gpt4 key购买 nike

我在 Flash cs5 - as3 中有一个名为 btn1 的简单按钮,其中包含一个名为 text_txt 的动态文本。

目标只是更改文本......

btn1.visible=true; // works fine
this.btn1.text_txt.text="hello"; // give a NULL error

我的问题是:如何以编程方式更改该按钮内的文本?

最佳答案

因为我有 FlashDevelop,所以我只能向您展示如何以编程方式完成所有操作。

如果您处理 Sprite 对象(我推荐),那么以下是您访问 Sprite 对象中的 TextField 的方法:

var textField:TextField = new TextField();
textField.name = "textField";
textField.mouseEnabled = false;

var rectangleShape:Shape = new Shape();
rectangleShape.graphics.beginFill(0xFF0000);
rectangleShape.graphics.drawRect(0, 0, 100, 25);
rectangleShape.graphics.endFill();

var buttonSprite:Sprite = new Sprite();
buttonSprite.addChild(rectangleShape);
buttonSprite.addChild(textField);
addChild(buttonSprite);

var tf:TextField = TextField(buttonSprite.getChildByName("textField"));
tf.text = "button sprite text";

首先,实例化名为 textFieldTextField 对象,并将其 name 属性分配给字符串“textField”,这与设置其相同实例名称。

接下来,实例化名为 rectangleShapeShape 对象,该对象以图形方式配置为看起来像一个简单的红色矩形。

接下来,实例化名为 buttonSpriteSprite 显示对象,并添加 textFieldrectangleShape 显示对象到它。然后Sprite显示对象容器被添加到舞台上。

最后,调用 buttonSprite 显示对象容器的 getChildByName() 方法并返回 textField 显示对象。为此,必须将 textField 显示对象的名称属性作为 getChildByName() 方法的参数给出。接下来,返回的 textField 对象存储在名为 tf 的本地 TextField 对象中,现在您可以访问 textField

[更新]

以下是通过 SimpleButton 对象访问 TextField 对象的方法,该方法类似于通过 Sprite 对象访问它(我不知道)但不推荐这样做):

var textField:TextField = new TextField();
textField.name = "textField";
textField.mouseEnabled = false;

var rectangleShape:Shape = new Shape();
rectangleShape.graphics.beginFill(0xFF0000);
rectangleShape.graphics.drawRect(0, 0, 100, 25);
rectangleShape.graphics.endFill();

var simpleButtonSprite:Sprite = new Sprite();
simpleButtonSprite.name = "simpleButtonSprite";
simpleButtonSprite.addChild(rectangleShape);
simpleButtonSprite.addChild(textField);

var simpleButton:SimpleButton = new SimpleButton();
simpleButton.upState = simpleButtonSprite;
simpleButton.overState = simpleButtonSprite;
simpleButton.downState = simpleButtonSprite;
simpleButton.hitTestState = simpleButtonSprite;
addChild(simpleButton);

// local simpleButtonSprite object
var sbs:DisplayObjectContainer = DisplayObjectContainer(simpleButton.upState);
//local textField object
var tf:TextField = TextField(sbs.getChildByName("textField"));
tf.text = "simple button text ";

关于带文本的 Flash 简单按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com