【发布时间】:2018-01-13 12:04:55
【问题描述】:
我正在开发一个桌面应用程序。我正在通过 Adobe Animate CC 使用 ActionScript 3。我设计了应用程序,为 GUI 设置了动画,然后开始编码。主要功能已成功编码,但我添加了一些超出应用程序原始目标范围的附加功能。所有这些只是为了将应用程序链接到一个网站和一些其他信息,这让我非常抓狂,因为我花了太多时间在非常简单的if 语句逻辑上!
无论如何,我创建了一个包含三个MovieClip 按钮的菜单。这些菜单按钮单击会影响一个MovieClip,其具有随着每次单击而移动的白色背景。我需要有一个背景来显示easeIn 和easeOut 在点击每个按钮时动画补间的美丽效果。
为了便于理解,我用一个非常简单的球和 3 个按钮重新创建了代码。如果单击第一个按钮,球将移动到第二个按钮上方的右侧。那么第一个按钮应该是不可点击的,除非点击另一个按钮。如果单击第二个按钮,则球将移动到第三个按钮上方的右侧。然后第二个按钮也应该是不可点击的,除非单击另一个按钮。第三个按钮也是如此。
现在,如果再次单击第一个按钮,则在启动应用程序时,白色背景的动画不应从默认位置开始! 它应该从当前位置动画回到默认位置......等等......
为了简单起见,我用球替换了白色背景
这很容易,但我用eventListeners、eventHandlers 和if 语句把它弄丢了! :/
我还制作了这张研究案例的表格:
我知道我的编码技术不够聪明,但那是因为我讨厌使用类、包、项目文件夹……等等。
即使代码运行时间过长并重复,对我来说还是简单点更好,因为编程不是我的日常工作!
请,任何帮助和快速响应将不胜感激!
代码:
import flash.ui.Mouse;
import flash.events.MouseEvent;
one.addEventListener(MouseEvent.CLICK, moveToSecondPos);
two.addEventListener(MouseEvent.CLICK, moveToThirdPos);
//three.addEventListener(MouseEvent.CLICK, moveToFirstPos);
var buttonState:Boolean;
one.buttonState = 0;
two.buttonState = 0;
//three.buttonState = 0;
function moveToSecondPos(event:MouseEvent){
if(one.buttonState == 0){
theBall.gotoAndPlay("go1");
one.buttonState = 1;
}
else if(two.buttonState == 1){
theBall.gotoAndPlay("backToOne");
// two.buttonState = 0;
// one.buttonState = 1;
}
else{
//disable About Button
one.removeEventListener(MouseEvent.CLICK, moveToSecondPos);
}
}
function moveToThirdPos(event:MouseEvent){
if((two.buttonState == 0)&&(one.buttonState == 0)){
theBall.gotoAndPlay("goProducts");
two.buttonState = 1;
}
else if(one.buttonState == 1){
theBall.gotoAndPlay("go2");
// two.buttonState = 1;
// one.buttonState = 1;
}
else{
two.removeEventListener(MouseEvent.CLICK, moveToThirdPos);
}
}
//function moveToFirstPos(event:MouseEvent){
// if(three.buttonState == 0){
// theBall.gotoAndPlay("go3");
// three.buttonState = 1;
// }
// else{
// three.removeEventListener(MouseEvent.CLICK, moveToFirstPos);
// }
//}
【问题讨论】:
标签: actionscript-3 flash button actionscript movieclip