저는 ActionScript 3에 새로 추가되었지만 점차적으로 작은 "탱크 (Tanks)"와 같은 슈팅 게임을 제작 해 왔으며 현재 총알 촬영을 추가 할 시점에 있습니다 이 작업을 수행하기 위해 나는 새로운 AS3 클래스를 만들어 그것을 가져온 등, 내가 게임을 실행할 때 나는 오류 얻을 :AS3 - "정의되지 않은 메소드 호출"
Call to a possibly undefined method
turretShot
이 일어나는 이유를 찾는 데 도와주십시오. 이 오류는 내 컴파일러 오류에 두 번 표시하고 대한의 선이 매우 유사, 여기에 코드의 부분이 영향을받습니다 (클래스 파일)
package resources
{
import flash.display.*;
import flash.events.*;
public class turretShot extends MovieClip
{
var enemy_mc:MovieClip;
public function turretShot(enemy_mc:MovieClip)
{
var xSpeed:Number;
var ySpeed:Number;
var angle:Number;
public var shotSpeed:Number;
speed = 30;
var gravity:Number = 1;
var thisShot:MovieClip;
var platform1_mc:MovieClip;
var platform2_mc:MovieClip;
var thisParent: *;
enemy_mc = enemy;
this.addEventListener(Event.ADDED, initialize);
}
function initialize(event:Event):void
{
this.addEventListener(Event.ENTER_FRAME, moveShot);
thisParent = event.currentTarget.parent;
platform1_mc = thisParent.platform1_mc;
platform2_mc = thisParent.platform2_mc;
thisShot = MovieClip(this.parent.getChildByName(this.name));
angle = this.rotation/180 * Math.PI;
xSpeed = Math.cos(angle) * speed;
ySpeed = Math.sin(angle) * speed;
}
function moveShot(event:Event):void
}
}
나는이를 가져온
shootTurret.as을 내 에 필요한 프레임 게임 .FLA의 액션 스크립트 : 내 클래스 파일로
import resources.*;
게임의 디렉토리에있는 "자원"폴더에 있습니다. 이제
, 그들하거나 클래스와 함께 할 아무것도하지만 그들이 있다면 ... 확실하지 이러한 오류를 던지고있다 코드의 두 섹션 :
(4 선)
var shot_mc:MovieClip;
if (keyPressed == Keyboard.SPACE && spaceKeyDown == false)
{
shot_mc = new turretShot(enemy_mc);
shot_mc.x = user_mc.x + user_mc.turret_mc.x;
shot_mc.y = user_mc.y + user_mc.turret_mc.y;
shot_mc.rotation = user_mc.turret_mc.rotation;
addChild(shot_mc);
spaceKeyDown = true;
}
하고 (첫 번째 줄) : 어떤 도움을 주시면 감사하겠습니다
var shot_mc:MovieClip = new turretShot(user_mc);
shot_mc.x = enemy_mc.x + enemy_mc.enemyTurret_mc.x;
shot_mc.y = enemy_mc.y + enemy_mc.enemyTurret_mc.y;
shot_mc.rotation = enemyTargetRotation;
shot_mc.speed = Math.random() * 15 + 15;
addChild(shot_mc);
.
답장을 보내 주셔서 감사합니다. 필자가 설명한 두 가지 이외의 컴파일러 오류에는 아무 것도 없습니다. "public function turretShot (enemy_mc : MovieClip)"이되도록 의도되었습니다. 나는 실수로 enemy = enemy_mc를 잘못 입력했습니다. 틀린 길을 돌았 다. 그리고 나는 그것을 수정했다. 그리고 여전히 나의 코드로 같은 2 개의 에러를 얻고있다. 나의 코드를위한 수정이 만족 스러울 것이다. 나는 이것에 정말로 새롭다. – user1637318
컴파일러에서이 클래스에 대한 오류가 발생하지 않으면 The_asMan이 제시 한 바와 같이 주 스크립트에서 가져 오지 않았을 수 있습니다. 이렇게하면이 코드의 나머지 버그 대부분을 찾아 낼 수 있습니다. –
@ the-asman 도움을 요청 해 주셔서 다시 한번 감사드립니다. 그러나 여전히 ... 같은 두 가지 오류는 이미 "가져 오기 리소스. *;"로 가져 왔습니다. 그 파일은 resources 디렉토리에있는 모든 AS 파일을 가져오고 심지어 정확한 클래스 파일을 대상으로 삼았을 때도 마찬가지입니다. 정말 여기에서 고투,이 작업을해야합니다 : ( – user1637318