我需要通过点击它们来移动球,但是它们需要单独移动,我还需要使用存储有精灵的数组。我搜索了过去几个小时但找不到答案,这可能很明显,但我有点累了。
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* ...
* @author Sam
*/
public class Main extends Sprite
{
public var array:Array = new Array();
public var bal:Sprite = new Sprite();
public function Main():void
{
for (var i:int = 0; i < 501; i++)
{
bal.graphics.beginFill(0x00FFFF);
bal.graphics.drawCircle(600 * Math.random(), 800*Math.random(), 10);
bal.graphics.endFill();
array.push(bal);
array[i].addEventListener(MouseEvent.CLICK, gaweg);
addChild(bal);
}
}
public function gaweg(e:MouseEvent):void
{
x += 3;
}
我正在使用的代码,我显然是初学者,'gaweg'是用于移动球的功能,我称之为Sprites'bal'。
答案 0 :(得分:2)
应该使用OOP解决此问题,即使用Ball
函数创建gaweg
对象。球也应该负责画画。
public class Ball extends Sprite
{
public function Ball()
{
graphics.beginFill(0x00FFFF);
graphics.drawCircle(600 * Math.random(), 800 * Math.random(), 10);
graphics.endFill();
addEventListener(MouseEvent.CLICK, _gaweg);
}
private function _gaweg(e:MouseEvent):void
{
x += 3;
}
}
这样,Ball
是一个独立的对象,可以绘制自己并拥有自己的点击处理程序。从这里,您可以将当前代码简化为:
public class Main extends Sprite
{
public var balls:Array = [];
public function Main()
{
for(var i:int = 0; i < 501; i++)
{
var ball:Ball = new Ball();
balls.push(ball);
addChild(ball);
}
}
}