我们正在使用FLash CS6和AS3为大学考试开发原型。
我们正在建立一个管理医院食品服务的设备,但我们遇到了处理食物选择按钮及其相关状态的问题。
我们有几个MOVIECLIPS作为按钮(每个动画片段有3种状态:无效,向下和选择)可供选择的每种食物,但是当我们转到另一帧以在菜单的不同页面之间切换时,我们将失去选择在上一页......
切换到其他页面时,如何保存动画片段的状态?
感谢您的帮助!
答案 0 :(得分:0)
通常,最好将数据(例如您在文档类中描述的内容)存储为跟踪信息。如果您需要使用Framescripts,那些通常应限于无法从文档类/其他类合理执行的任务,例如时间轴事件,MovieClip事件侦听器和状态更改。
解决这个问题的最简单方法是拥有一个存储食物选择的类,其中包含可以设置和检索此数据的函数。然后,当您加载按钮实例时,使用类中存储的数据来设置按钮的状态。
这是一个过于简单的例子,使用单个标志布尔值。我建议使用另一个系统进行存储,例如XML,数组或自定义对象。在这种情况下,您还希望将类功能更改为所有可能的条目,而不仅仅是一个。
package
{
public class food
{
var pizza:Boolean = false;
public function addFood():void
{
pizza = true;
}
public function removeFood():void
{
pizza = false;
}
public function checkFood():Boolean
{
return pizza;
}
}
}
然后,您可以使用一个功能来设置按钮的状态,该功能可能会放在您的舞台上。我假设,因为你正在使用MovieClip,你有不同状态的不同帧。我假设“1”未选中且“2”被选中,并且MovieClip是“pizzaButton”。
同样,您需要扩展此功能以处理多个按钮,而不只是一个按钮。
import food;
function updateButton():void
{
var flag:Boolean = food.checkFood();
if(flag)
{
pizzaButton.gotoAndStop(2);
}
else
{
pizzaButton.gotoAndStop(1);
}
}
顺便说一句,adaam在评论中绝对正确。 SimpleButtons可能比MovieClip更好地用于此目的,但这取决于您拥有的按钮的性质。我会调查一下。这个方法大部分都适用于SimpleButtons,除了你的代码会改变对象的状态,而不是它的框架。