여기는 내 첫 번째 질문이지만 최근에이 문제가 발생하여 도움이 필요합니다. 나는 주말에 작은 작은 안드로이드 게임 프로그래밍 그리고 난 내 배의 총알은 적을 공격하고 모두 사라지게 만들기에 문제가있어Actionscript 3.0의 하위 항목 제거
...
내가 너희들에게 좀 설명해주지 내 코드 :stage.addEventListener(Event.ENTER_FRAME, Update);
LeftButton.addEventListener(TouchEvent.TOUCH_OVER, LBOn);
LeftButton.addEventListener(TouchEvent.TOUCH_BEGIN, LBTouch);
LeftButton.addEventListener(TouchEvent.TOUCH_OUT, LBOff);
LeftButton.addEventListener(TouchEvent.TOUCH_END, LBRelease);
RightButton.addEventListener(TouchEvent.TOUCH_OVER, RBOn);
RightButton.addEventListener(TouchEvent.TOUCH_BEGIN, RBTouch);
RightButton.addEventListener(TouchEvent.TOUCH_OUT, RBOff);
RightButton.addEventListener(TouchEvent.TOUCH_END, RBRelease);
BA.addEventListener(TouchEvent.TOUCH_BEGIN, Shoot);
이것이 내 무대의 이벤트 수신기입니다. ...
function Shoot(TouchEvent) {
SpawnBullet();
};
좋아, 간단한 모든 현재 EventListeners를,이 작은 부분에 매우 간단하고 그들은 내가 뭘하는지 괜찮 작동하지만 마지막 이벤트는 함수 촬영을 호출하고 일이 까다로운 곳이다 충분히. 나는를 실행하면
function SpawnBullet() {
var Bullet:Bullet1 = new Bullet1();
stage.addChild(Bullet);
Bullet.x = Player.x;
Bullet.y = Player.y - (Player.height/2);
Bullet.addEventListener(Event.ENTER_FRAME, BulletUpdate);
function BulletUpdate(Event) {
Bullet.y -= 20;
if(Bullet.y <= 100) {
Bullet.removeEventListener(Event.ENTER_FRAME, BulletUpdate);
stage.removeChild(Bullet);
Bullet = null;
};
};
};
: 거기 많이 해 내가 보는 방식, 내 총알을 산란하는 다른 함수를 호출 그냥 기능은 ...
이것은 내가 코드 실행을 시도하는 방법입니다 게임 난이 오류를 얻을 :
ReferenceError: Error #1069: Property ENTER_FRAME not found on flash.events.Event and there is no default value.
at Function/Shooter_fla:MainTimeline/SpawnBullet/Shooter_fla:BulletUpdate()[Shooter_fla.MainTimeline::frame1:41]
내가 가짜에 내 능력을 노력 아니에요을, 나는 내가 추가하고 차일 작업의 제거 및 이후 난 그냥있는 방법을 웹 검색 싫어하는 방법을 이해하지 못하는 것 같아 뭔가 일하는 방식을 배우지 않고 무언가를하려면 여기에 약간의 도움을 주러 왔습니다. 어떤 도움을 주셔서 미리 감사드립니다!
글쎄, 대단히 감사합니다! 지금 당장 샤워를하고 내 문제에 대한 해결책을 찾아 보겠습니다. 코드 포맷팅에 관해서는 모든 것을 블록으로 유지하려고 노력했기 때문에 어떤 부분에 관한 내용인지 쉽게 읽을 수 있습니다. 눈과 조직이 훨씬 쉽다고 생각하지만 함수 내부에서 함수를 선언하는 것이 좋지 않다는 것을 알지 못했습니다. , 그래서 나는 그것을 계속 염두에 둘 것이다. 또한, "Bullet1로서의 e.target"이 무엇인지 말해 주시겠습니까? 해야 할 것? 나는 "as"명령을 사용하지 않았다. 그래서 ... – Wobbufest
@Wobbufest 그것은 타입 캐스팅이다. 기본적으로, 당신은 * "이 레퍼런스는 ** Bullet1 ** 클래스입니다. 항상 필요하지는 않습니다 (코드에서 ** aBull **을 ** DisplayObject **로 선언하는 것이 좋습니다.)하지만 컴파일러가 예상 한 것을 더 잘 알거나 때로는 객체에서 기대하지 않는 것이 좋을 때도 있습니다. 주소 지정. ** ** more ** : https://stackoverflow.com/questions/12390347/whats-the-significance-of-as-keyword-in-this-code https://stackoverflow.com/questions/에 대한 내용을 읽을 수 있습니다. 14268329/as3-cast-or-as – Organis
우선 ** 감사의 말에 ** 감사합니다. 정말 도움이되었습니다. '기능 BulletUpdate (이벤트) { \t \t \t \t \t \t var에 ThisBullet : Bullet1 = Event.currentTarget로 둘째, 난 그냥 같은 문제로 실행 해요하고 코드를 시도, 여기 내 BulletUpdate 이벤트입니다 Bullet1; \t \t \t \t \t \t ThisBullet.y - = 20; \t \t \t \t \t \t \t 경우 (ThisBullet.y <= 100) { \t \t \t \t \t \t \t \t \t \t ThisBullet.removeEventListener (되어 Event.ENTER_FRAME, BulletUpdate); \t \t \t \t \t stage.removeChild (ThisBullet); \t \t \t \t \t \t \t \t \t}; \t \t \t \t \t} 아직 뭔가가 누락 되었습니까? PS .: e.target Bullet1이 작동하지 않는 것 같아서 Event.target으로 바 꾸었습니다. – Wobbufest