Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Flash 1136:参数数量不正确。预期为0。‎ AS3闪存Cs4(第二轮)_Flash_Actionscript 3_Actionscript - Fatal编程技术网

Flash 1136:参数数量不正确。预期为0。‎ AS3闪存Cs4(第二轮)

Flash 1136:参数数量不正确。预期为0。‎ AS3闪存Cs4(第二轮),flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,我以前问过这个问题,但我认为我的问题不够直接,因此没有得到解决,所以又来了 我正在通过一本叫做基金会ActionScript 3动画的书工作,让事物移动。 我现在讲的是第9章-碰撞检测。在我的两行代码中,我得到了1135错误,让我知道我的参数数量不正确。我用星号突出显示了出现这种情况的两个区域: package { import flash.display.Sprite; import flash.events.Event; public class Bubbles extends Sp

我以前问过这个问题,但我认为我的问题不够直接,因此没有得到解决,所以又来了

我正在通过一本叫做基金会ActionScript 3动画的书工作,让事物移动。

我现在讲的是第9章-碰撞检测。在我的两行代码中,我得到了1135错误,让我知道我的参数数量不正确。我用星号突出显示了出现这种情况的两个区域:

package 
{ 
import flash.display.Sprite; 
import flash.events.Event; 
public class Bubbles extends Sprite 
{ 
private var balls:Array; 
private var numBalls:Number = 10; 
private var centerBall:Ball; 
private var bounce:Number = -1; 

private var spring:Number = 0.2; 
public function Bubbles() 
{ 
init(); 
} 
private function init():void 
{ 
balls = new Array(); 
***centerBall = new Ball(100, 0xcccccc);*** 
addChild(centerBall); 
centerBall.x = stage.stageWidth / 2; 
centerBall.y = stage.stageHeight / 2; 
for(var i:uint = 0; i < numBalls; i++) 
{ 
***var ball:Ball = new Ball(Math.random() * 
40 + 5, 
Math.random() * 0xffffff);*** 
ball.x = Math.random() * stage.stageWidth; 
ball.y = Math.random() * stage.stageHeight; 
ball.vx = Math.random() * 6 - 3; 
ball.vy = Math.random() * 6 - 3; 
addChild(ball); 
balls.push(ball); 
} 
addEventListener(Event.ENTER_FRAME, onEnterFrame); 
} 
private function onEnterFrame(event:Event):void 
{ 
for(var i:uint = 0; i < numBalls; i++) 
{ 
var ball:Ball = balls[i]; 
move(ball); 
var dx:Number = ball.x - centerBall.x; 
var dy:Number = ball.y - centerBall.y; 
var dist:Number = Math.sqrt(dx * dx + dy * dy); 
var minDist:Number = ball.radius + centerBall.radius; 
if(dist < minDist) 
{ 
var angle:Number = Math.atan2(dy, dx); 
var tx:Number = centerBall.x + 
Math.cos(angle) * minDist; 
var ty:Number = centerBall.y + 
Math.sin(angle) * minDist; 
ball.vx += (tx - ball.x) * spring; 
ball.vy += (ty - ball.y) * spring; 
} 
} 
} 
private function move(ball:Ball):void
{ 
ball.x += ball.vx; 
ball.y += ball.vy; 
if(ball.x + ball.radius > stage.stageWidth) 
{ 
ball.x = stage.stageWidth - ball.radius; 
ball.vx *= bounce; 
} 
else if(ball.x - ball.radius < 0) 
{ 
ball.x = ball.radius; 
ball.vx *= bounce; 
} 
if(ball.y + ball.radius > stage.stageHeight) 
{ 
ball.y = stage.stageHeight - ball.radius; 
ball.vy *= bounce; 
} 
else if(ball.y - ball.radius < 0) 
{ 
ball.y = ball.radius; 
ball.vy *= bounce; 
} 
} 
} 
} 
这成功地阻止了所有错误的出现,然而,它并没有传递任何来自泡泡的效果,因为它只是在舞台中央打出了一个红色的球。我将如何修改此代码以支持Bubbles.as


请帮忙!谢谢

它对我来说运行得很好,但是我需要对您提供的代码进行一些调整-我注意到,在您的Bubbles类中,您试图访问Ball的属性,这些属性被设置为私有半径、颜色,因此要么将它们设置为公共的,要么为此创建适当的getter/setter方法

public var radius:Number;
public var color:uint;
或者如果您想使用getter/setter函数

private var _radius:Number;
private var _color:uint;

public function get radius():Number
{
   return _radius;
}
public function set radius(val:Number):void
{
   _radius = val;
}

public function get color():uint
{
   return _color;
}
public function set color(val:uint):void
{
   _color= val;
}

在做了那个更改之后,我只是将气泡设置为我的FLA文档根,然后砰

哦,我的法罗米,你真的帮了我大忙,非常感谢你,我问你最后一个问题是不是很粗鲁?你没弄错吧?你知道它看起来是什么样子吗?我可以让中心的静态球跟随鼠标的移动吗???
private var _radius:Number;
private var _color:uint;

public function get radius():Number
{
   return _radius;
}
public function set radius(val:Number):void
{
   _radius = val;
}

public function get color():uint
{
   return _color;
}
public function set color(val:uint):void
{
   _color= val;
}