2009-05-19 86 views
0

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

private function 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 =新的TextFormat(); myTxtFormat.color = 0xccff00;

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

myText.setTextFormat(symTxtFormat); 

}

回答

0

在testMouseOver你可以试试这个:

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

您还可以设置文本字段的名称属性:

myTxt.name = "htmlTxtField"; 
+0

好的,所以继承人我补充说: createRows() - 我添加了一个名称的container.name =“myContainer”和myTxt.name =“htmlTxtField”;我在添加 var containerMC:MovieClip = getChildByName(“myContainer”); var txtField:TextField = containerMC.getChildByName(“htmlTxtField”); 我得到错误-1118:隐式强制将静态类型为flash.display:DisplayObject的值转换为可能不相关的类型flash.text:TextField。 我做错了什么? – Iris 2009-05-19 23:05:09

1

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