Actionscript 3 是否更改AS3中任何选定文本字段的格式?
我在触发click事件时创建了几个文本字段。现在我想更改任何选定文本字段的文本格式。但该格式仅应用于上次创建的文本字段。我尝试了以下方法:Actionscript 3 是否更改AS3中任何选定文本字段的格式?,actionscript-3,action,Actionscript 3,Action,我在触发click事件时创建了几个文本字段。现在我想更改任何选定文本字段的文本格式。但该格式仅应用于上次创建的文本字段。我尝试了以下方法: function _txtbtn(e:*):void { myText = new TextField(); mc3 = new MovieClip(); myText.text = "text..."; myFormat.font = "Arial"; myFormat.color = txt_color()
function _txtbtn(e:*):void
{
myText = new TextField();
mc3 = new MovieClip();
myText.text = "text...";
myFormat.font = "Arial";
myFormat.color = txt_color()
myText.setTextFormat(myFormat);
mc3.addChild(myText);
addChild(mc3);
mc3.x = _can.x;
mc3.y = p;
p= mc3.y+mc3.height+10;
mc3.addEventListener(MouseEvent.MOUSE_DOWN,_select)
}
function _select(e:MouseEvent):void
{
tool_stage.combo.addEventListener(Event.CHANGE,_font)
}
function _font(e:Event):void
{
format.font = tool_stage.combo.selectedLabel;
myText.setTextFormat(format);
}
这是正确的,因为变量myText引用了最后一个对象 相反,您可以从事件中获取当前的TextField对象。 每个事件都有currentTarget值,该值引用了触发事件的对象。 然后可以将currentTarget强制转换为您的类型,并使用它执行操作 不幸的是,我没有你的全部代码,这就是为什么我有自己的版本。 看一看,我想它能帮你 //梅因
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class Main extends Sprite
{
private var button:Sprite;
private var p:int = 50;
private var x0:int = 20;
public function Main()
{
init();
}
private function init():void
{
button = new Sprite();
button.graphics.beginFill(0xFFCC00);
button.graphics.drawRect(0, 0, 80, 20);
button.graphics.endFill();
button.addEventListener(MouseEvent.CLICK, onBtnClick);
this.addChild(button);
}
private function onBtnClick(e:*):void
{
var myFormat:TextFormat = new TextFormat();
var myText:TextField = new TextField();
var mc3:MovieClip = new MovieClip();
myText.text = "text...";
myFormat.font = "Arial";
myFormat.color = 0x000000;
myText.setTextFormat(myFormat);
mc3.addChild(myText);
addChild(mc3);
mc3.x = x0;
mc3.y = p;
p= mc3.y+mc3.height+10;
myText.addEventListener(MouseEvent.CLICK, onTextClick)
}
private function onTextClick(evt:MouseEvent):void
{
var newFormat:TextFormat = new TextFormat();
newFormat.size = 30;
newFormat.font = "Verdana";
(evt.currentTarget as TextField).setTextFormat(newFormat);
}
}
}
你能再解释一下这项任务吗?您的案例中的“组合”是什么?您的组件如何交互?从你的任务来看,我不清楚。也许你有一个截图,让我更好地理解它。