FLASH AS2动态添加按钮

FLASH AS2 dynamically added button

_root.attachMovie("zoom_btn", "zoom_btn", _root.getNextHighestDepth());

zoom_btn.onRelease = function() {
    _root.attachMovie("blank_btn", "blank_btn", _root.getNextHighestDepth());
    blank_btn._x=200;
}

//zoom_btn.onRelease();

blank_btn.onRelease = function() {
    trace ("click");
}

单击 "zoom_btn" 后,"blank_btn" 从库中添加舞台(为 AS 导出已打开)。

当我点击 "blank_btn" 时,没有任何反应。跟踪不工作。

我做错了什么?

更新:如果我取消注释第 8 行,一切正常。

它不起作用,因为当您在 blank_btn 上添加 onRelease 处理程序时,blank_btnundefined。 尝试在定义 onRelease 函数之前添加一个 trace(blank_btn),它将输出 undefined.

当您取消注释 zoom_btn.onRelease(); 时,它会起作用,因为它会在添加 onRelease 处理程序之前创建 bank_btn

如果你想这样做,你需要做类似的事情:

zoom_btn = _root.attachMovie("zoom_btn", "zoom_btn", _root.getNextHighestDepth());
zoom_btn.onRelease = createBlankButton

function createBlankButton() {
    blank_btn = _root.attachMovie("blank_btn", "blank_btn", _root.getNextHighestDepth());
    blank_btn._x=200;
    blank_btn.onRelease = function() {
        trace ("click");
    }
}