首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在处理数组中的影片剪辑时出现问题[as3]

在处理数组中的影片剪辑时出现问题[as3]
EN

Stack Overflow用户
提问于 2013-01-18 08:41:13
回答 1查看 318关注 0票数 0

在我正在制作的一款游戏中,我试图将精灵放在一个命中框的顶部。我能想到的最好的方法是创建两个数组;一个用于命中框,另一个用于精灵,然后通过一个for循环让精灵停留在它们各自的命中框的顶部,该循环将在它自己的脚本中。

问题是,当我试图让这两个数组中的MovieClips做任何事情时,它都不起作用。如果我跟踪精灵的X或Y位置,我会在我的终端中得到"undefined“。我将自上而下解释这一点。

下面是我的类的摘录,其中包含for循环(Dasengine是我的主类fyi)

代码语言:javascript
复制
for(var i:Number = 0; i < Dasengine.ovrcnt.length; i++){
        trace(Dasengine.ovrcnt[i].x); //returns "undefined"
                    trace(Dasengine.ovrcnt[i]); //returns "object Onmea"
Dasengine.ovrcnt[i].x = Dasengine.enemycnt[i].x;//this isn't working

            }

在另一个脚本中,当敌人产卵时,他们会使用这种方法。

代码语言:javascript
复制
if(ENEMY SPAWN CONDITION IS MET ){
 Dasengine.baddie = new nme_spawn.Enemya(); //ENEMY HITBOX
 Dasengine.Obaddie = new nme_overlay.Onmea(); //ENEMY's sprite

 Dasengine.enemycnt[cntup] = [Dasengine.baddie]; //Enemy's Hit box movie clip is put in array meant for holding enemy movie clips

 Dasengine.ovrcnt[cntup] = [Dasengine.Obaddie]; //Enemy sprites that go over the hit boxes are stored here
 cntup++; //this is so movie clips are put in new parts of the array

                }

在我的主类中,电影剪辑的声明如下所示,我还在其中提供了addChild功能。

代码语言:javascript
复制
public static var Obaddie:nme_overlay.Onmea;
//^variable for sprite
public static var baddie:nme_spawn.Enemya;
//^variable for hitbox

也是Obaddie=覆盖坏人。它的MovieClip作为hitbox顶部的东西,这是玩家将看到的

badde =就是hitbox。这里面包含了敌人ai的“肉”。

我和一些朋友讨论过这个问题,他们认为我可能需要在数组中对象的类中定义“X”是什么。因此,我做了以下工作

代码语言:javascript
复制
    package nme_overlay {

import flash.display.*;
import flash.events.*;
import nme_spawn.*;



    public class Onmea extends MovieClip{

        // Constants:
        // Public Properties:
        // Private Properties:
        public static var xloc:int = 0;
        // Initialization:

        public function Onmea() { 

        this.addEventListener(Event.ENTER_FRAME, overlaya);

        }

        private function overlaya(e:Event){
        xloc = 55;
        //trace(xloc);
        }


    }

}

然后,对于循环类,我这样做了

代码语言:javascript
复制
            for(var i:Number = 0; i < Dasengine.enemycnt.length; i++){
        trace(Dasengine.ovrcnt[i]);//returns "object Onmea"
        trace(Dasengine.ovrcnt[i].xloc);//still returns "undefined"


        }
EN

回答 1

Stack Overflow用户

发布于 2013-01-18 09:58:49

您的xloc变量是静态的--它属于nme_overlay、类,而不是任何特定的实例。如果你在你的代码中这样做,并且你有严格的模式(我怀疑你没有,因为你的代码中有很多东西至少应该给你警告),你会得到一个错误,它会确切地告诉你:

代码语言:javascript
复制
for(var i:Number = 0; i < Dasengine.enemycnt.length; i++){
        trace(Dasengine.ovrcnt[i]);//returns "object Onmea"
        trace(nme_overlay(Dasengine.ovrcnt[i]).xloc);//still returns "undefined"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14390728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档