2013-07-01 18 views
0

我试图将textField对象的列表插入到影片剪辑中并使它们可点击。 textfields来自一个可变元素数组,我在电影剪辑上绘制文本,但后来我无法找到一种方法使它们单独点击。 我发现互联网上下面的代码:在Actionscript 2中创建一系列可单击的文本框

this.createEmptyMovieClip("txt_mc", this.getNextHighestDepth()); 
var txt:TextField = txt_mc.createTextField("tContinue", 0, 195, 138, 200, 40); 
txt.multiline = txt.border = txt.wordWrap = true; 
txt.text = "Click here to execute the function."; 
txt_mc.createEmptyMovieClip("invisible", 1); 
with (txt_mc.invisible) { 
    beginFill(0x000000, 0); 
    moveTo(195, 138); 
    lineTo(395, 138); 
    lineTo(395, 178); 
    lineTo(195, 178); 
    lineTo(195, 138); 
    endFill(); 
} 

txt_mc.onRelease = function() { 
    trace("Hello!"); 
    //-->> How can I know which element has been clicked?? 
} 

上面的代码工作正常,但它是完全没用的,我的目的,我需要知道已被点击文本框它由用户(我几个文本框)读取它的文本并传递给另一个函数。

脚本2有什么办法吗?

回答

0

我已经找到了解决办法:

var lbl = planMC.textObject.createTextField("txtRoomCode", tn, xt - minPlanX, yt - minPlanY, 150, 90); 
lbl.html = true; 
lbl.htmlText = "<a href='asfunction:linkHandler," + parameters + "'>" + lblText + "</a>"; 
lbl.textColor = 0xFF0000; 
lbl.setTextFormat(textFormat); 
lbl._parent.linkHandler = Delegate.create(this, linkHandler); 

这里调用的函数:

linkHandler = function (param:String) 
{ 
    trace(param); 
}; 

Remeber进口进口mx.utils.Delegate;

问题是,此解决方案只适用于文本,而不适用于图像或矢量形状。

相关问题