개체 풀을 설정하는 데 문제가 있습니다. 풀링 로직을 처리하기 위해 "BallPoll"사용자 정의 클래스를 작성했습니다. fillPool()을 먼저 호출하여 20 개의 Ball 객체를 배열에 추가합니다. 그런 다음 내 문서 클래스에서 볼을 만들려고 할 때 풀 배열을 확인합니다. 그것은 작동하지 않으며 나는 왜 확실하지 않다.개체 풀이 작동하지 않습니다.
------ 문서 클래스 ---------
function throwBall(e:TimerEvent):void {
if (mouseY>stage.stageHeight-180) {
return;
}
var tBall:Ball = Pool.getBall(new Point(mouseX,mouseY),new Point(Math.random()+Math.random()*5+Math.random()*8),gravity,friction);
tBall.gotoAndStop(BallColor);
addChild(tBall);
ballArray.push(tBall);
}
----------- BallPool 클래스 ---------
package {
import flash.events.TimerEvent;
import flash.geom.Point;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
import Ball;
public class BallPool extends MovieClip {
private static const gravity:Number=1.5;
private static const friction:Number=.50;
public var STOREDBALLS:Array = new Array();
public function BallPool() {
fillPool();
}
public function fillPool() {
for (var i:int = 0; i < 20; i++) {
var NewBall:Ball = new Ball(new Point(mouseX,mouseY),new Point(Math.random()+Math.random()*5+Math.random()*8),gravity,friction);
STOREDBALLS.push(NewBall);
}
}
public function getBall($position:Point, $vector:Point, $gravity:int, $friction:Number):Ball {
if (STOREDBALLS.length > 0) {
var counter:int = 0;
trace(STOREDBALLS.length);
var ball:Ball = STOREDBALLS[counter];
trace("44");
counter ++;
return ball;
} else {
return new Ball($position, $vector, $gravity, $friction);
}
//return null;
}
}
}
어떤 부분이 작동하지 않습니까? 문제가 정확히 무엇입니까? – Cadin
getBall 함수가 작동하지 않습니다. 난 STOREDBALLS 배열을 통해 반복하고 무대에있는 볼을 결정하는 방법을 알아낼 수 없습니다. 또한, 부모 문서 클래스에서 공을 적절히 재활용하십시오. 감사합니다 – user1114288