所以我有这个代码
function flip(e:MouseEvent)
{
//assign choice a random deck index.
choice=int(deck[Math.round((Math.random()*deck.length))]);
if(choice!=int(deck[9]))
{
//removeChild(MovieClip(e.target));
//position firecard.
addChild(fire);
fire.x=e.target.parent.x;
fire.y=e.target.parent.y;
//remove cardback
e.target.parent.removeChild(MovieClip(e.target));
fire.parent.setChildIndex(fire,numChildren-2);
trace(choice);
}
else if(choice==int(deck[9]))
{
trace(choice);
water.x=e.target.parent.x;
water.y=e.target.parent.y;
e.target.parent.removeChild(MovieClip(e.target));
water.parent.setChildIndex(water,numChildren-2);
}
}
评论几乎解释了一切应该做什么。通过动画片段中的侦听器调用翻转。选项是每次调用翻转时随机选取的数字,并从deck数组中的随机索引获取其值。然后,无论选择何种选择,都会删除单击的卡片,并根据选项var在其位置放置一张卡片。但是,会发生两个错误(编译器或输出中没有任何错误)。
当我点击另一张卡时,也会删除创建的新卡(火)。我希望他们留在原地。
跟踪始终打印0.不应该打印出0到9之间的任何内容吗?
PS:Deck有10个值。其中9个是“火”,最后是“水”。选择从0初始值开始。
答案 0 :(得分:1)
问题是你在数组中有字符串(“fire”和“water”)。但是你将这个字符串转换为int,所以转向0.只需尝试不对数组的值进行类型转换。
function flip(e:MouseEvent)
{
//assign choice a random deck index.
choice=deck[Math.floor(Math.random()*deck.length)];
if(choice != deck[9])
{
//removeChild(MovieClip(e.target));
//position firecard.
addChild(fire);
fire.x=e.target.parent.x;
fire.y=e.target.parent.y;
//remove cardback
e.target.parent.removeChild(MovieClip(e.target));
fire.parent.setChildIndex(fire,numChildren-2);
trace(choice);
}
else if(choice == deck[9])
{
trace(choice);
water.x=e.target.parent.x;
water.y=e.target.parent.y;
e.target.parent.removeChild(MovieClip(e.target));
water.parent.setChildIndex(water,numChildren-2);
}
}
除了删除类型转换之外,我没有改变任何东西。
答案 1 :(得分:0)
function flip(e:MouseEvent)
{
//assign choice a random deck index.
choice=Math.floor(Math.random()*deck.length);
if(choice!=9)
{
...
}
else if(choice==9)
{
...
}
}