Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 I';我试图使许多相同的对象随机出现在屏幕上的条件和不断得到错误?_Actionscript 3_Actionscript_Flash Cs4_Sensors - Fatal编程技术网

Actionscript 3 I';我试图使许多相同的对象随机出现在屏幕上的条件和不断得到错误?

Actionscript 3 I';我试图使许多相同的对象随机出现在屏幕上的条件和不断得到错误?,actionscript-3,actionscript,flash-cs4,sensors,Actionscript 3,Actionscript,Flash Cs4,Sensors,一个好朋友向我推荐了这个网站,看起来真的很有用!我在actionscript有点无耻,经过3天的指导和建议,我遇到了麻烦 我设法把一个传感器连接到一个arduino上,用一种叫做3Glue的东西与flash对话。它可以工作,当我为传感器读数为0的条件设置一个跟踪(“叶子”)时,我会得到一个单词“叶子”的打印输出。但是,我希望程序在满足此条件时在屏幕上显示图形,而不仅仅是跟踪某些内容 我试图让程序在每次满足条件时,在屏幕上的随机位置生成一个名为“敌人”的库对象。它被称为敌人,因为我在看一个游戏教程

一个好朋友向我推荐了这个网站,看起来真的很有用!我在actionscript有点无耻,经过3天的指导和建议,我遇到了麻烦

我设法把一个传感器连接到一个arduino上,用一种叫做3Glue的东西与flash对话。它可以工作,当我为传感器读数为0的条件设置一个跟踪(“叶子”)时,我会得到一个单词“叶子”的打印输出。但是,我希望程序在满足此条件时在屏幕上显示图形,而不仅仅是跟踪某些内容

我试图让程序在每次满足条件时,在屏幕上的随机位置生成一个名为“敌人”的库对象。它被称为敌人,因为我在看一个游戏教程…实际上它是一张树叶的画

下面是给我带来问题的代码:

陆军:阵列;敌人:敌人
函数AvoiderGame(){army= 新建数组();var new敌方=新建 敌人(100100);军队( 新敌人); }

函数timerEvent(事件:事件):无效 {

如果(a.getAnalogData)(0)==0&& a、 getAnalogData(0)= 这是(最后一个职位){

//不要追踪任何东西} 这是最后一个职位= a、 getAnalogData(0);//之后,设置 新职位 最后定位并重复

}

我导入了“导入” flash.display.MovieClip;”

敌方职业的代码看起来 像这样:

包{导入 flash.display.MovieClip;公共类 敌人扩展电影剪辑{public} 功能敌人(startX:编号, startY:Number){x=startX; y=startY;} }}

这是我的错误。我尝试过谷歌搜索,这似乎是一个相当普遍的错误:

TypeError:错误#1009:无法访问 空对象的属性或方法 参考在 as3glue\u程序\u fla::MainTimeline/timerEvent() 在 flash.utils::Timer/_timerDispatch() at flash.utils::Timer/tick()

我已经确定“敌人”对象是为AS3导出的

当它在AS2中编程时,我会选择这样的东西:

叶计数器=0//将计数器设置为 0个计数器交换深度(1000)//把 顶住 什么都可以,除非你赚的比 一千片叶子!counter.textbox.text=0; //在中的文本框中显示“0” “计数器”电影剪辑

this.onMouseDown=函数(){ //单击鼠标时触发 这个.attachMovie(“叶”,“叶”+叶计数器,叶计数器,{x:Math.random()*Stage.width,{y:Math.random()*Stage.height,{u-rotation:Math.random()*360}); //使用 随机位置和随机旋转 leafCounter++;//将1添加到叶中 counter counter.textbox.text= leafCounter;//在中显示该数字 文本框}

我确信这一定是一个简单的错误,当它只是在屏幕上跟踪某些东西时,我可以让逻辑工作,但我无法让它生成“敌人”


任何帮助或提示都会非常有用!我知道这是一个有点笨手笨脚的修改现有代码的工作。

好的,您抛出的错误意味着某些东西在您认为应该存在的时候不存在。目前,最好的候选人正在寻找lastposition,尽管你可能早就提到了。注释掉每个全局变量,直到它起作用。您似乎正在检查a.input是否等于0,但不是lastposition,然后您将lastposition设置为a.input(必须为0)也检查该值。

出于某种原因,取消了line army.push(新敌人);使这项工作完美嗨,谢谢你的帮助!当我把所有的东西都注释掉,除了痕迹(“叶子”);在“if”语句中,它可以完美地工作。每次按下传感器时,都会跟踪“叶”。只有当我在屏幕上添加了一个新的“敌人”时,才会出现错误。没有。我不确定它到底出了什么问题……就我所知,创建“敌人”并将其添加到舞台上是可以的(你也导入了敌人吗?)。试着对单个变量进行注释,直到有东西起作用,而不仅仅是阻塞。啊哈!非常感谢你的建议,我拿出了这句台词:军队。推(新敌人);而且它工作得很好!不知道为什么。在这种情况下,您没有初始化数组“army”,您确定在启动计时器之前运行了AvoiderGame()吗?我不确定,我使用了教程中的片段。我不需要在设定的时间显示thin,所以对于这个应用程序来说可能并不重要?
          trace("leaf");
          var randomX:Number = (Math.random() * 200) + 100;
          var randomY:Number = (Math.random() * 150) + 50;
          var newEnemy = new Enemy( randomX, randomY);
          army.push( newEnemy );
          addChild( newEnemy );
       } else if (a.getAnalogData(0) == 0) {   //don't trace anything } >else {