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