按钮点击计数器不递增
Button Click Counter not incrementing
我在 Flash 中有一个类似的动画,底部有一个重播按钮。动画完成后,它不会循环。相反,如果您单击重播,动画将再次开始。
我想要一个显示按钮被按下次数的文本框。
我现有的代码正在重播动画。它在跟踪中将计数增加到 1(从 0),但未在文本框中设置。此外,如果我再次单击该按钮,跟踪将再次显示 1——没有发生增量(1 到 2、2 到 3 等)。
如果我注释掉 gotoAndPlay(1),递增工作正常并显示在文本框中——但动画不会再次播放。
我做错了什么?
import flash.events.MouseEvent;
var hitcount:Number = 0;
textCounter.text = String(hitcount);
function incCounter(event:MouseEvent):void
{
hitcount++;
textCounter.text = String(hitcount);
trace(hitcount);
gotoAndPlay(1);
}
replay_btn.addEventListener(MouseEvent.CLICK, incCounter);
如果您的 Flash 影片长于一帧,那么您在舞台上放置动作的图层也需要扩展该帧数。否则代码在第 1 帧之后不再存在。此外,当您返回到第 1 帧时,您每次都会附加另一个鼠标事件。使用 yourButton.removeEventListener 开始您的代码,以确保您只将一个事件附加到它。每次电影结束并回到第 1 帧时,您的计数器都会重置为 1。
你的代码中的问题是你每次都在创建和初始化你的计数器,所以确保你每次重播都会得到值 1
。
因此,为避免这种情况,您只需验证是否已经创建了 hitcount
变量,否则就创建它:
if(!hitcount){ // hitcount is null, so create it
var hitcount:Number = 0;
}
作为一个好习惯,您也可以在不需要时删除按钮上的 MouseEvent.CLICK
。所以你得到这样的东西:
if(!hitcount){
var hitcount:Number = 0;
}
count.text = hitcount.toString();
function incCounter(event:MouseEvent):void
{
event.target.removeEventListener(MouseEvent.CLICK, incCounter);
hitcount++;
count.text = hitcount.toString();
gotoAndPlay(1);
}
replay_btn.addEventListener(MouseEvent.CLICK, incCounter);
希望能帮到你。
我在 Flash 中有一个类似的动画,底部有一个重播按钮。动画完成后,它不会循环。相反,如果您单击重播,动画将再次开始。
我想要一个显示按钮被按下次数的文本框。
我现有的代码正在重播动画。它在跟踪中将计数增加到 1(从 0),但未在文本框中设置。此外,如果我再次单击该按钮,跟踪将再次显示 1——没有发生增量(1 到 2、2 到 3 等)。
如果我注释掉 gotoAndPlay(1),递增工作正常并显示在文本框中——但动画不会再次播放。
我做错了什么?
import flash.events.MouseEvent;
var hitcount:Number = 0;
textCounter.text = String(hitcount);
function incCounter(event:MouseEvent):void
{
hitcount++;
textCounter.text = String(hitcount);
trace(hitcount);
gotoAndPlay(1);
}
replay_btn.addEventListener(MouseEvent.CLICK, incCounter);
如果您的 Flash 影片长于一帧,那么您在舞台上放置动作的图层也需要扩展该帧数。否则代码在第 1 帧之后不再存在。此外,当您返回到第 1 帧时,您每次都会附加另一个鼠标事件。使用 yourButton.removeEventListener 开始您的代码,以确保您只将一个事件附加到它。每次电影结束并回到第 1 帧时,您的计数器都会重置为 1。
你的代码中的问题是你每次都在创建和初始化你的计数器,所以确保你每次重播都会得到值 1
。
因此,为避免这种情况,您只需验证是否已经创建了 hitcount
变量,否则就创建它:
if(!hitcount){ // hitcount is null, so create it
var hitcount:Number = 0;
}
作为一个好习惯,您也可以在不需要时删除按钮上的 MouseEvent.CLICK
。所以你得到这样的东西:
if(!hitcount){
var hitcount:Number = 0;
}
count.text = hitcount.toString();
function incCounter(event:MouseEvent):void
{
event.target.removeEventListener(MouseEvent.CLICK, incCounter);
hitcount++;
count.text = hitcount.toString();
gotoAndPlay(1);
}
replay_btn.addEventListener(MouseEvent.CLICK, incCounter);
希望能帮到你。