繁体   English   中英

AS3一旦在舞台上看不到一组电影剪辑,如何切换到其他场景?

[英]AS3 How to switch to a different scene once a set of movieclips are not visible on stage?

我正在制作一个应用程序,该应用程序非常简单,一部分有4个花瓣,然后全部选择了4个,由于某种原因,您带到另一个显示徽标“重试”的场景,我什至无法追踪一次活动这些花瓣是在那个舞台上摘下来的(每个花瓣都是一个动画片段)。 我还通过将类通过链接将movieclips作为变量写入了AS3中,我什至不知道这是否真的必要,并且当无法查看movieclip“ one”时也要跟踪“ helloworld”一词,并且也不会发生。 (我也尝试过数组,并且if(“ array” .visible == false然后gotoandplay“其他场景”具有相同的结果。);“地点”是我要在捡完花瓣后转到的场景。

这是我当前的代码,没有错误,但是没有按我想要的方式工作,因为它没有注册MovieClip不可见,也没有转到其他场景。

var one = new sunflowerpetal10;
var two = new sunflowerpetal12;
var three = new sunflowerpetal13;
var four = new sunflowerpetal14;
var five = new sunflowerpetal15;
var six = new sunflowerpetal16;

var hello:String;
hello = "helloworld";

if(one.visible == false, two.visible == false, three.visible == false, four.visible == false, five.visible == false, six.visible == false)
{
 trace(hello); 

 gotoAndPlay(1, "theplace");
}

请帮助! 我已经在舞台上的电影剪辑没有在AS3上注册? 或似乎是什么问题?

您在这里有很多错误,很难确定您实际上在做什么。 关于在何处以及如何引用什么,Flash非常令人困惑。

对于初学者,当您对某个东西调用new时,需要给它加上括号。 所以...

new sunflowerpetal15();

假设您的库中有一个名为sunflowerpetal15的MC,并且此标签是“导出到动作脚本”的方式,而不仅仅是库中的名称。

接下来,您必须将该项目实际放在舞台上

this.addChild(new sunflowerpetal15());

如果您的if语句中的下一个具有非法的s。 我认为您的意思是&&(逻辑与)之间的意思,但同样,不确定您在做什么。

当所有这些都解决之后,您*应该拥有它并播放第1帧,但是我怀疑您从未离开过第1帧! 所以...再次,我怀疑您不清楚自己在这里做什么。

您真正需要的是关于Flash和AS3入门的很好的分步教程。 您到处都是地图,而Flash绝对是错误的环境,如果没有很好的指导,就一个人去吧,因为它非常不直观。

答案!:

每个花瓣都有此代码(单击该代码即可使对象不可见):

sunflowerpetal1.addEventListener(MouseEvent.CLICK, fl_ClickToHide);

function fl_ClickToHide(event:MouseEvent):void
{
    sunflowerpetal1.visible = false;
}
  • 现在,每次我尝试执行if语句时,一旦所有的花瓣都消失了,它将传递到另一个屏幕,它将不起作用!

例如:

if(sunflowerpetal1.visible == false && sunflowerpetal2.visible == false && sunflowerpetal3.visible == false && sunflowerpetal4.visible == false && sunflowerpetal5.visible == false && sunflowerpetal6.visible == false)
{
    gotoAndPlay(1, "theplace");
}
  • 诀窍是将这个“ if”语句放在每张花瓣当前代码的括号内,如下所示:

    sunflowerpetal1.addEventListener(MouseEvent.CLICK,fl_ClickToHide);

    函数fl_ClickToHide(event:MouseEvent):void {sunflowerpetal1.visible = false;

     if(sunflowerpetal1.visible == false && sunflowerpetal2.visible == false && sunflowerpetal3.visible == false && sunflowerpetal4.visible == false && sunflowerpetal5.visible == false && sunflowerpetal6.visible == false) 

    {gotoAndPlay(1,“ theplace”); }

    }

*在每个花瓣(或消失的物体)代码中放入“ if”语句,您将被全部设置,一旦单击所有花瓣(或影片剪辑),您将被发送到命令它的场景。 (在将您带到另一个名为"theplace"显示“重试”)的屏幕之前,我有6张花瓣需要单击。)

问题已解决=)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM