首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionSctipt 3.0错误:

ActionSctipt 3.0错误:
EN

Stack Overflow用户
提问于 2017-02-25 17:15:05
回答 1查看 38关注 0票数 0

我很难动态地访问符号,我有9个按钮都调用这个方法,它们在它们的位置传递(tl,t,tr,等等)。我以前在另一个程序上尝试过这个方法,它没有问题,但是在这个程序中它失败了。

我试图访问一个符号调用s_tl (示例位置),但我得到的只是未定义的(见结果)。

代码语言:javascript
复制
function turn(btn : String):Function {
return function(e:MouseEvent) {
    var players_turn : int;
    var chosen : String = "s_" + btn;

    trace(this);
    trace(this[chosen]);
    trace(chosen);
    trace(this[chosen]);
    // if crosses turn 0 else 1
    if (s_c.currentFrame == 1) {
        players_turn = 0;
    } else {
        players_turn = 1;
    }       

    // check who's turn it is if it's been pressed before
    if (players_turn == 0 && this[chosen].visible == false) {
        this[chosen].gotoAndStop(1);
        this[chosen].visible = true;
    } else {
        this[chosen].gotoAndStop(2);
        this[chosen].visible = true;
    }
};
}

结果:

代码语言:javascript
复制
[object global]
undefined
s_br
undefined
TypeError: Error #1010: A term is undefined and has no properties.
    at MethodInfo-6()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-25 18:54:42

你的问题是糟糕的代码风格。在函数匝()中定义未命名的unbind函数,这就是问题的根源所在。正如跟踪所示,取消绑定函数存在于全局寻址上下文中,并且与函数匝()不同,它不绑定到任何特定的显示对象。您的按钮可能存在于同一个寻址上下文中。参数btn在未命名函数中可用,因为ECMA标准这样做(如果函数A创建函数B,则A的局部变量(包括参数)可以作为B中的局部变量使用),但它是一个非常的非常的错误实践,使代码变得混乱并引发头痛。

请解释一下你试图用那个代码实现什么,这样我们就可以解开它,用不那么扭曲的方式重写它。

好吧,我基本上以为你在做Tic Tac脚趾。现在,指导方针。单元格必须包含3帧:第1帧用于按钮图形,第2和第3帧用于XO。以你的方式命名: s_1,s_2,等等。

代码语言:javascript
复制
for (var i:int = 1; i < 10; i++)
{
    var aCell:MovieClip = getChildByName("s_" + i) as MovieClip;
    aCell.addEventListener(MouseEvent.CLICK, onTic);
}

function onTic(e:MouseEvent):void
{
    var playersTurn:int = s_c.currentFrame;
    var aCell:MovieClip = e.currentTarget as MovieClip;

    trace(aCell.name);

    // Now, the magic.
    aCell.gotoAndStop(playersTurn + 1);
    aCell.removeEventListener(MouseEvent.CLICK, onTic);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42459099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档