【问题标题】:Making layers invisible with mouse click通过鼠标单击使图层不可见
【发布时间】:2016-04-03 22:03:11
【问题描述】:

是否有可能使当您第一次单击按钮时,特定图层将变得不可见......然后一旦您第二次单击按钮,另一个图层将变得不可见,并且很快?如果可以,我可以举个例子吗?谢谢!

我的尝试:

/************************* RESET BUTTON **************************/ 
reset_btn.addEventListener(MouseEvent.CLICK,reset); 

function reset(e:Event) : void 
{ 
    eraserClip.graphics.clear(); 
    initEraser();

    erasableBitmapData.fillRect(erasableBitmapData.rect, 0xFFFFFFFF); 
    penny.visible = true; 
    maskee4.visible = true; 
    card.visible = false; 
    greencard.visible = true;

}

这个想法是,一旦我按下重置按钮一次,名为card 的图层就会消失。在下面会有一个层,标题为greencard。一旦我第二次点击重置按钮,我希望greencard 消失。正如你在上面看到的,我只是在做(property name).visible = false;
这适用于第一张卡片,但不适用于之后的卡片,因为它们不会出现。

【问题讨论】:

  • 以上所有方法都是可能的,但是您是否有尝试过的sn-p 代码可以展示给我们看?没有一些指导方针(现有代码),答案是无穷无尽的。
  • 我不认为您可以通过 ActionScript 3 操作图层可见性,因为图层是 IDE 的一部分,而不是电影的一部分。相反,您必须使用 MovieClip 对象,并结合按钮事件。
  • 下面是重置按钮的代码。所以想法是,一旦我按下重置按钮一次,名为 card 的图层就会消失。在其下方会有一层,名为 greencard。一旦我第二次按下重置按钮,我希望绿卡消失。正如你在下面看到的,我只是在做 (property name):visible=false;这适用于第一张卡片,但不适用于之后的卡片,因为它们不会出现。见下文。
  • /************************* 重置按钮 ************** ************/ reset_btn.addEventListener(MouseEvent.CLICK,reset);功能重置(e:事件):无效{橡皮擦.graphics.clear();初始化橡皮擦(); erasableBitmapData.fillRect(erasableBitmapData.rect, 0xFFFFFFFF);一分钱.可见=真; maskee4.visible=true;卡可见=假; greencard.visible=true;
  • 你必须显示一些代码。

标签: actionscript-3 layer invisible


【解决方案1】:

如果我理解正确,您可以尝试以下类似的操作:

reset_btn.addEventListener(MouseEvent.CLICK, reset); 

var clickCount : int = 0; //# start with zero since no clicks yet

card.visible = true; 
greencard.visible = true;

function reset(e:Event) : void 
{ 
    clickCount += 1; //# adds +1 to current count of clicks

    eraserClip.graphics.clear(); 
    initEraser();

    erasableBitmapData.fillRect(erasableBitmapData.rect, 0xFFFFFFFF); 
    penny.visible = maskee4.visible = true; //# if same value (true) you can chain them like this

    if ( clickCount == 1) //if now 1 click
    { 
        card.visible = false; 
    }

    if ( clickCount == 2) //if now 2 clicks
    { 
        greencard.visible = false; 
    }

}

【讨论】:

  • 我试着把它放进去,但它仍然不起作用......不过,我会放弃你给我的东西。感谢您的帮助!
  • 很高兴它已排序。请记住,您可能需要(或想要)在单击 2 次后重置 clickCount。所以在另一个函数中,例如: start_Next_Game 它变成了clickCount = 0; card.visible = true; greencard.visible = true;
  • 谢谢!我遇到的另一个问题是如何做到这一点,以便每次用户点击重置按钮时,游戏都会保存它的数据......这样用户每次他们都不会回到第一张卡再次打开游戏。
  • 查找 AS3 共享对象 作为一种选择。这是一个快速的 tutorial。制作游戏不是我的主要领域,所以通过网络搜索查找更多选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
相关资源
最近更新 更多