【问题标题】:Flash and as3 questionFlash 和 as3 问题
【发布时间】:2010-07-16 18:13:04
【问题描述】:

所以这是我遇到的一个奇怪的错误,因为我的框架上有四个电影剪辑,我在类似青蛙游戏的游戏中在屏幕上来回运行。其中三个有效,第四个无效,尽管我基本上对所有这些都有相同的代码。为什么我会得到一个错误,而不是其他 3 个?这是我的代码:

if((chris.x - laneOne) >= 0 && !turn1){
    chris.scaleX = 1;
    chris.x -= laneOne;
    turn1 = false;
}else{
    turn1 = true;
}
if((chris.x + laneOne) <= 500 && turn1){
    chris.scaleX = -1;
    chris.x += laneOne;
    turn1 = true;
}else{
    turn1 = false;
}
//Lane 2
if((kate.x - laneTwo) >= 0 && !turn2){
    kate.scaleX = 1;
    kate.x -= laneTwo;
    turn2 = false;
}else{
    turn2 = true;
}
if((kate.x + laneTwo) <= 500 && turn2){
    kate.scaleX = -1;
    kate.x += laneTwo;
    turn2 = true;
}else{
    turn2 = false;
}
//Lane 3
/*if((seth.x - laneThree) >= 0 && !turn3){
    seth.scaleX = 1;
    seth.x -= laneThree;
    turn3 = false;
}else{
    turn3 = true;
}
if((seth.x + laneThree) <= 500 && turn3){
    seth.scaleX = -1;
    seth.x += laneThree;
    turn3 = true;
}else{
    turn3 = false;
}*/
//Lane 4
if((mel.x - laneFour) >= 0 && !turn4){
    mel.scaleX = 1;
    mel.x -= laneFour;
    turn4 = false;
}else{
    turn4 = true;
}
if((mel.x + laneFour) <= 500 && turn4){
    mel.scaleX = -1;
    mel.x += laneFour;
    turn4 = true;
}else{
    turn4 = false;
}

Seth 是行不通的,但基本上这使得这些奔跑角色的电影剪辑看起来像是在来回奔跑,而车道是他们前进的速度,而转弯只是为了确保他们一直走到一边。

这是我的第一个问题。

我的第二个问题是我在同一帧上有一个角色,我想通过键盘移动他,我正在使用 senocular 的 keyObject 类,除非我最小化屏幕然后重新打开屏幕,否则它不起作用.一旦我重新打开屏幕,它就可以正常工作了。

我有一种预感,这两个问题都与未完全加载的影片剪辑有关,但我是 flash 和 as3 的新手,因此我们将不胜感激。另外,如果需要更多说明,请提出要求,以便我得到一些帮助,因为我已经遇到这个问题大约 2 天了,但仍然无法解决!

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

    问题 1:使用 trace() 找出 'seth' 是否由于某种原因未定义。由于您粘贴的代码没有提到 Seth,我无法在那里提出更好的建议... [编辑:StackOverflow 正在截断您在我的 iPhone 上的代码,但跟踪仍然是我调试问题的方式,查找未定义的属性]

    问题 2:确保将关键侦听器添加到舞台而不是子对象。这样您就不必在侦听器开始工作之前单击 Swf 来获得焦点。

    [编辑 2:弄清楚如何查看您的代码——“seth”代码块被注释掉了,这是您的问题吗?]

    【讨论】:

    • haha no seth 被注释掉不是我的问题,实际上我也在 Flash 论坛上发布了这个问题,并且我的第一个问题得到了答案,但现在我仍在尝试找出第二个问题一。是的,我的听众也被添加到了舞台上。
    • 如果您需要关于#2 的帮助,您需要发布一些代码。也很高兴发布您的第一个问题的解决方案,以便其他人可以看到它是如何解决的
    【解决方案2】:

    好的,所以第一个问题的答案是我在前一帧中有相同的影片剪辑,所以我要做的就是给它一个不同的实例名称。

    对于第二个问题,我仍然感到困惑。我所拥有的只是一个屏幕,用户可以在游戏开始之前点击一个按钮来玩游戏,在我点击按钮玩游戏之后,除非我最小化屏幕并重新打开它,否则主角不会移动,这不是好的。我以前用一个类做的,按钮是一个电影剪辑,但现在我只使用一个简单的按钮,遇到了同样的难题。

    这是我必须让它进入实际游戏的代码:

    stop();
    playGame.addEventListener(MouseEvent.CLICK, buttonClicked);
    var clicked:Boolean = false;
    function buttonClicked(event:MouseEvent){
        clicked = true;
        this.gotoAndStop('start');
    }

    这对你们有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      相关资源
      最近更新 更多