AS3 - 变量未定义

时间:2013-10-16 10:47:39

标签: actionscript-3 flash

我现在正在使用flash cc为Android创建一个Air。 在for循环中,我这样写。 (这只是整体的一部分)

var six1=Object(root)["mc_"+String(mcs)+String(mcb)].currentFrame
var six2=Object(root)["mc_"+String(mcs+1)+String(mcb)].currentFrame
var six3=Object(root)["mc_"+String(mcs+2)+String(mcb)].currentFrame
var six4=Object(root)["mc_"+String(mcs+3)+String(mcb)].currentFrame
var six5=Object(root)["mc_"+String(mcs+4)+String(mcb)].currentFrame
var six6=Object(root)["mc_"+String(mcs+5)+String(mcb)].currentFrame

我总共有36个动画片段:mc_11,mc_12 ... mc_16到mc_61,mc_62 ... mc_66 当for循环中的变量“mcs”和“mcb”分别为6和6时,则在第6行中,movieclip名称将为[mc_611],并且它将是未定义的,并弹出错误。 但是,如果我只是希望“six6”的结果未定义并且没有错误弹出,我该怎么办? (因为未定义的“six6”不会影响以下代码) 。 请帮忙!谢谢你!!!

1 个答案:

答案 0 :(得分:0)

也许你可以在访问currrentFrame属性之前尝试测试你的对象是否存在 例如:

var six6 = Object(root)["mc_"+String(mcs+5)+String(mcb)] ? Object(root)["mc_"+String(mcs+5)+String(mcb)].currentFrame : udefined;</code>

或:

var six6 = undefined;
if( Object(root)["mc_"+String(mcs+5)+String(mcb)] )
{
    six6 = Object(root)["mc_"+String(mcs+5)+String(mcb)].currentFrame;
}