【发布时间】:2014-01-12 12:26:54
【问题描述】:
基本上我试图制作一个 FLA,如果我点击一个按钮并关闭 FLA,下次我加载相同的 FLA 时,之前点击过的按钮现在的 alpha 为 0.5,并且不可点击。
目前我只有创建按钮和保存数据的逻辑:
private var savedData:SharedObject = SharedObject.getLocal("sharedStorage10");
private var buttonInfoArr:Array = [];
public function Main()
{
for (var i:int = 0; i < 4; i++)
{
var myImage_mc:MovieClip = new MovieClip();
myImage_mc.graphics.beginFill( 0xFFFFFF * Math.random() );
myImage_mc.graphics.drawRect(0,0,100,100);
myImage_mc.graphics.endFill();
myImage_mc.x = 50 + i * (myImage_mc.width + 10);
myImage_mc.y = 100;
myImage_mc.name = "myImage_mc" + i
this.addChild(myImage_mc);
myImage_mc.mouseEnabled = true;
myImage_mc.buttonMode = true;
myImage_mc.addEventListener(MouseEvent.CLICK, onClick);
}
}
private function onClick(ev:MouseEvent):void
{
var thisButton:MovieClip = ev.currentTarget as MovieClip
trace(thisButton.name)
thisButton.alpha = 0.5
thisButton.buttonMode = false;
thisButton.removeEventListener(MouseEvent.CLICK, onClick);
buttonInfoArr.push( thisButton.name );
savedData.data.myArray = buttonInfoArr;
}
但我不知道如何加载/使用数据并使按钮(之前已单击)以 0.5 的 alpha 开头且没有 EventListener(MouseEvent.CLICK,点击)
PS:不使用字典可以吗,因为我还没有掌握它。
_编辑__
以更详细的方式表示我的问题:
所以我创建了一个游戏,在其中我收集代表金钱的物品。在游戏中死后,我进入 商店 类,我可以在其中根据我拥有的钱购买不同的物品。 所以可以说死后我有足够的钱来获得item1和item2。所以我点击button1(代表item1)和button2(代表item2)(当点击他们的alpha 0.5) 并重新开始游戏。好吧,现在我有 1 条生命,我得到更多的钱。但突然间,我突然觉得我内心深处有些奇怪,有些东西我以前从未有过的感觉->饥饿,
我关闭了电脑(因为我爱地球)并尽可能快地跑到最近的商店。
让我们说 item1 是:+1life 并且 item2 是:从对象中获得更多的钱
在我满足了我最初的需求后,我强烈地想要再次玩我那个很棒的游戏。但是当我开始游戏时,我开始看到一些奇怪的事情:我似乎没有一条生命并且我也没有获得更多的钱,只是为了确保我没有产生幻觉(或者我不记得我上次的生活)我是故意死的,所以商店菜单会显示。所以现在我看到的让我伤心 -> button1 和 button2 处于活动状态并且 alpha 为 1(这意味着游戏认为它们从未被购买/点击,我这辈子从来没有玩过这个游戏) 所以我发疯了(因为之前的所有比赛都是徒劳的,我必须重新开始)。
冷静下来后,我决定改变我的生活。第一个重大变化是在游戏中添加了一些代码。更具体地说:一种保存我买的物品的方法,所以当我关闭游戏并重新开始时,我看到的东西会给我的生活带来乐趣->:我仍然有我上次买的物品。
长话短说: 当我单击一个按钮(它将其 alpha 更改为 0.5)并关闭 FLA 时,我该如何做到这一点, 每当我打开同一个 FLA 时,我之前单击的按钮将显示为现在已单击(它的 alpha 将为 0.5)
【问题讨论】:
标签: actionscript-3