0

我正在尝试将 textField 对象列表插入到影片剪辑中并使它们可点击。文本字段来自变量元素数组,我在影片剪辑上绘制文本,但后来我无法找到一种方法让它们可以单独点击。我在互联网上找到了以下代码:

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??
}

上面的代码工作正常,但它对我的目的完全没用,因为我需要知道用户点击了哪个文本字段(我有几个文本字段)来读取它的文本并传递给另一个函数。

在 Actionscript 2 中有什么方法可以做到这一点吗?

4

1 回答 1

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);
};

记住 import import mx.utils.Delegate;

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

于 2013-07-02T09:38:18.263 回答