访问功能范围之外的影片剪辑对象

时间:2009-05-19 22:19:08

标签: flash flash-cs3 flashdevelop

我有一个影片剪辑,其中包含一个文本字段,然后是一个按钮。当用户鼠标悬停在文本上时,我需要能够更改文本的颜色。以下是代码段。如何从函数外部访问“文本”字段的引用?提前谢谢。

私有函数createRows() {     var containerMc:MovieClip = row;

//Create Text           
var myTxt:TextField = new TextField();
myTxt.htmlText = labelName;
myTxt.antiAliasType = AntiAliasType.ADVANCED;
myTxt.selectable = false;

//Create Symbol Format Text
var myTxtFormat:TextFormat = new TextFormat();
myTxtFormat.color = 0x000000;
myTxtFormat.font  = font;
myTxtFormat.bold = "bold";
myTxtFormat.size = fontSize;

//Format text
myTxt.setTextFormat(myTxtFormat);
containerMc.addChild(myTxt);

//Create button         
var btn:Sprite = new Sprite();
btn.graphics.beginFill(rowColor);

btn.graphics.drawRect(0, 0, width, height);
btn.graphics.endFill();
btn.alpha = 0;
btn.name = someName;
btn.buttonMode = true;

btn.addEventListener(MouseEvent.MOUSE_OVER,testMouseOver);              
containerMc.addChild(btn);

}

私有函数testMouseOver(e:MouseEvent)  {     var myTxtFormat:TextFormat = new TextFormat();     myTxtFormat.color = 0xccff00;

var myText:TextField = new TextField;
myText.htmlText = e.currentTarget.name;

myText.setTextFormat(symTxtFormat);

}

2 个答案:

答案 0 :(得分:1)

你知道,如果文本是一个按钮,你所要做的就是进入按钮内部,在悬停下创建一个关键帧......并更改文本的颜色。你不需要任何动作脚本

答案 1 :(得分:0)

在testMouseOver中你可以试试这个:

var containerMC:MovieClip = getChildByName("container movie clip name") as MovieClip;
var txtField:TextField = containerMC.getChildByName("htmlTxtField") as TextField;

您还必须设置文本字段的名称属性:

myTxt.name = "htmlTxtField";