动态文本重置而不是使用多个按钮保留当前值 AS3
Dynamic text resets instead of retaining current value with multiple buttons AS3
我遇到了这个问题:
http://josimar.com/Whosebug_AS3_spumker_Question.swf
这是 Flash 文件的 .zip:
http://josimar.com/Whosebug_AS3_spumker_Question.fla.zip
我需要 'counter' 动态文本(基于时间轴)在单击 A 或 B 按钮时显示累计总数。
目前,按钮 A 和 B 在影片剪辑中,A 占据剪辑的前 50 帧,然后 B 占据接下来的 50 帧。
如果您访问 .swf 示例,您会注意到,如果您立即单击 A 几次,然后在 B 变得可单击时单击 B,动态文本会按预期运行并且 'adds' 达到总数。
但是,当按住这些按钮的影片剪辑到达第 100 帧时,我只是让它 运行 回到第 1 帧,然后,当您再次单击 A 或再次单击 B 时,它会将总数重置为1. 就是这个问题,我要的是total到哪里都保留,而不是reset!?
button_container中的代码:('clicked'是主时间线上的动态文本名称)
var clickCount:int = 0;
button_A.addEventListener(MouseEvent.CLICK, addClick);
function addClick(event:MouseEvent):void {
clickCount++;
Object(root).clicked.text = clickCount.toString();
}
此外,我希望以某种方式将所有 AS3 都放在主时间线上。这是明智的,甚至是最好的方法吗?原因是,例如我最终希望有 25 个单独的 'button_containers' ALL,其中包含相同的 A 和 B 按钮,并且需要能够使用 AS3 从主时间轴将它们全部定位,然后它们将再次添加到 'clicked' 总计,从不重置它。
非常感谢任何帮助,我花了很长时间试图解决这个问题,并在这个网站上搜索解决方案,但没有成功。
他
香槟
以下是我尝试从主时间轴控制按钮的示例:(顺便说一句,mcone/mctwo/mcthree 是必要的动画片段,我需要保持这种结构 :)
var clickCount:int = 0;
Object(root).mcone.mctwo.buttonA.addEventListener(MouseEvent.CLICK, addClick2);
function addClick2(event:MouseEvent):void {
clickCount++;
Object(root).mcthree.clicked.text = clickCount.toString();
}
最好将所有代码移出时间线并使用 类。如果您对此不满意,则应考虑仅将代码保留在第一个关键帧上。
下面是一个示例,说明如果将代码全部放在第一帧上,您可以做什么:
var clickCount:int = 0;
var frameCount:int = 0;
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void {
frameCount ++;
if (frameCount <= 50) {
button_A.addEventListener(MouseEvent.CLICK, addClick);
button_B.removeEventListener(MouseEvent.CLICK, addClick);
} else if (frameCount <= 100) {
button_A.removeEventListener(MouseEvent.CLICK, addClick);
button_B.addEventListener(MouseEvent.CLICK, addClick);
} else {
frameCount = 0;
}
}
function addClick(e:MouseEvent):void {
clickCount++;
counter_txt.text = String(clickCount);
}
编辑: 我已将固定项目上传到:http://www.anthonybirch.org/Whosebug/Whosebug_AS3_spumker_Question_4.fla
您非常接近...您的问题是在按钮 A/B 和 C/D 的每个 MovieClip 中,您正在创建另一个 clickCount 实例。我可以看到您正在这样做,因为您无法直接从 MovieClip 内部访问 clickCount。通过将 Object(root).
(您已经为文本字段计算出来)放在 clickCount 前面,这允许您获得所需的访问权限。
如果回答了您的问题,请将此问题标记为正确。
我遇到了这个问题: http://josimar.com/Whosebug_AS3_spumker_Question.swf
这是 Flash 文件的 .zip: http://josimar.com/Whosebug_AS3_spumker_Question.fla.zip
我需要 'counter' 动态文本(基于时间轴)在单击 A 或 B 按钮时显示累计总数。
目前,按钮 A 和 B 在影片剪辑中,A 占据剪辑的前 50 帧,然后 B 占据接下来的 50 帧。
如果您访问 .swf 示例,您会注意到,如果您立即单击 A 几次,然后在 B 变得可单击时单击 B,动态文本会按预期运行并且 'adds' 达到总数。
但是,当按住这些按钮的影片剪辑到达第 100 帧时,我只是让它 运行 回到第 1 帧,然后,当您再次单击 A 或再次单击 B 时,它会将总数重置为1. 就是这个问题,我要的是total到哪里都保留,而不是reset!?
button_container中的代码:('clicked'是主时间线上的动态文本名称)
var clickCount:int = 0;
button_A.addEventListener(MouseEvent.CLICK, addClick);
function addClick(event:MouseEvent):void {
clickCount++;
Object(root).clicked.text = clickCount.toString();
}
此外,我希望以某种方式将所有 AS3 都放在主时间线上。这是明智的,甚至是最好的方法吗?原因是,例如我最终希望有 25 个单独的 'button_containers' ALL,其中包含相同的 A 和 B 按钮,并且需要能够使用 AS3 从主时间轴将它们全部定位,然后它们将再次添加到 'clicked' 总计,从不重置它。
非常感谢任何帮助,我花了很长时间试图解决这个问题,并在这个网站上搜索解决方案,但没有成功。
他 香槟
以下是我尝试从主时间轴控制按钮的示例:(顺便说一句,mcone/mctwo/mcthree 是必要的动画片段,我需要保持这种结构 :)
var clickCount:int = 0;
Object(root).mcone.mctwo.buttonA.addEventListener(MouseEvent.CLICK, addClick2);
function addClick2(event:MouseEvent):void {
clickCount++;
Object(root).mcthree.clicked.text = clickCount.toString();
}
最好将所有代码移出时间线并使用 类。如果您对此不满意,则应考虑仅将代码保留在第一个关键帧上。
下面是一个示例,说明如果将代码全部放在第一帧上,您可以做什么:
var clickCount:int = 0;
var frameCount:int = 0;
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void {
frameCount ++;
if (frameCount <= 50) {
button_A.addEventListener(MouseEvent.CLICK, addClick);
button_B.removeEventListener(MouseEvent.CLICK, addClick);
} else if (frameCount <= 100) {
button_A.removeEventListener(MouseEvent.CLICK, addClick);
button_B.addEventListener(MouseEvent.CLICK, addClick);
} else {
frameCount = 0;
}
}
function addClick(e:MouseEvent):void {
clickCount++;
counter_txt.text = String(clickCount);
}
编辑: 我已将固定项目上传到:http://www.anthonybirch.org/Whosebug/Whosebug_AS3_spumker_Question_4.fla
您非常接近...您的问题是在按钮 A/B 和 C/D 的每个 MovieClip 中,您正在创建另一个 clickCount 实例。我可以看到您正在这样做,因为您无法直接从 MovieClip 内部访问 clickCount。通过将 Object(root).
(您已经为文本字段计算出来)放在 clickCount 前面,这允许您获得所需的访问权限。
如果回答了您的问题,请将此问题标记为正确。