Actionscript 3 AS3,错误1180调用可能未定义的方法Nivel1,Adobe animate
谢谢你的回答,我已经解决了这个问题,但我有这个问题,这里是我喜欢做的游戏的所有类,但是玩家没有移动,你可以在这里帮助我,这就是问题所在。thnks Nivel1类:Actionscript 3 AS3,错误1180调用可能未定义的方法Nivel1,Adobe animate,actionscript-3,flash,undefined,Actionscript 3,Flash,Undefined,谢谢你的回答,我已经解决了这个问题,但我有这个问题,这里是我喜欢做的游戏的所有类,但是玩家没有移动,你可以在这里帮助我,这就是问题所在。thnks Nivel1类: package Codigos.Niveles { import flash.display.MovieClip; import Codigos.Jugador; import flash.events.Event; import Codigos.CamaraVirtual; public
package Codigos.Niveles {
import flash.display.MovieClip;
import Codigos.Jugador;
import flash.events.Event;
import Codigos.CamaraVirtual;
public class Nivel1 extends MovieClip {
public function Nivel1() {
main.nuevoJugador = new Jugador();
addChild(main.nuevoJugador);
main.nuevoJugador.x = 34;
main.nuevoJugador.y = 334;
main.nuevaCamara = new CamaraVirtual();
addChild(main.nuevaCamara);
main.nuevaCamara.x = 400;
main.nuevaCamara.y = 240;
addEventListener("EnterFrame",nivel1Eventos);
}
private function nivel1Eventos(e:Event){
if(main.nuevoJugador.x<=150){
MovieClip(root).Nivel.x+=5;
MovieClip(root).escenario.x+=5;
main.nuevoJugador.x+=5;
}
else if(main.nuevoJugador.x>=650){
MovieClip(root).Nivel.x-=5;
MovieClip(root).escenario.x-=5;
main.nuevoJugador.x-=5;
}
}
}
}
Jugador级玩家:
package Codigos {
import flash.display.MovieClip;
import flash.events.Event;
public class Jugador extends MovieClip {
public var VelocidadX:int = 5;
public var VelocidadY:int = 1;
public var Limite:int = 10;
public var Salto:int = -12;
public function Jugador() {
addEventListener("EnterFrame",Moverme);
}
private function Moverme(e:Event){
var NivelaTocar = MovieClip(root).Nivel;
if(NivelaTocar.hitTestPoint(x,y + height/2,true)){
while(NivelaTocar.hitTestPoint(x,-1 + y +height/2,true)){
y--;
}
VelocidadY=0;
if(main.SaltoVar){
VelocidadY=Salto;
y+=VelocidadY;
}
}
else if(NivelaTocar.hitTestPoint(x,y-height/2,true)){
VelocidadY = VelocidadY * -0.5;
y += VelocidadY;
while(NivelaTocar.hitTestPoint(x, y - height / 2,true)){
y++;
main.SaltoVar = false;
}
}
else {
y+=VelocidadY * 1.5;
main.SaltoVar = false;
if(VelocidadY <= Limite){
VelocidadY++;
}
}
while(NivelaTocar.hitTestPoint(x + width / 2, y , true)){
x--;
}
while(NivelaTocar.hitTestPoint(x - width / 2, y , true)){
x++;
}
movimientosReales();
}
private function movimientosReales(){
if(main.DerechaVar){
x+=VelocidadX;
scaleX = 1;
}
else if(main.IzquierdaVar){
x-=VelocidadX;
scaleX = -1;
}
}
}
}
蒙乃达级硬币:
package Codigos {
import flash.display.MovieClip;
import flash.events.Event;
public class Moneda extends MovieClip {
public function Moneda() {
addEventListener(Event.ENTER_FRAME, tocar);
}
private function tocar(e:Event){
if(hitTestObject(main.nuevoJugador)){
removeEventListener(Event.ENTER_FRAME, tocar);
main.TemporalPuntos++;
parent.removeChild(this);
}
}
}
}
在构造函数方法Nivel1中,注释所有代码,然后尝试以下操作: 输出是什么? 我想
trace(main.nuevoJugador);
或者只是:
trace(main);
输出是否未定义/null/或是否会引发错误?是这样吗
因为main未在Nivel1类中定义。。。
我错了吗
还有,请你也发一下Jugador的课程
不是图像,而是代码
只需复制并粘贴代码,然后选择添加的代码,然后单击代码示例Ctrl+K,如下图所示:
因此,用户可以在另一个答案中编辑/更改您的代码,而无需花费时间重写prinstscreen提供的所有代码。这对于stackoverflow上的社区来说是巨大的时间浪费 尝试var nuevoNivel1:Nivel1=new Nivel1;。下次发布实际代码文本,而不是代码图片。解释你的错误实际上是怎么说的。请用英文名称来表示你的变量和方法!包名称应以小写的codigos.niveles开头,变量名称也应以小写的codigos.niveles开头。类应该始终以大写开头,就像您所做的那样:Nivel1。方法应始终以小写字母开头。你应该先考虑这个问题,如果这个问题不清楚或不好,任何人都很难回答你的问题。Brandon@Brandon反馈?很抱歉没有回复。我的电脑有问题。我已经解决了这个问题,但是如果你能帮我做些其他事情的话。我已经做了代码,以显示和移动的球员在水平,但没有移动。对不起,我在这个新的,我编辑并把所有的类,我不知道为什么球员没有移动@TATActicId是否尝试跟踪main?:tracemain;我在你们班上没看到任何关于main的引用。@Brandon。。
public function Nivel1(){
trace(main.nuevoJugador);
/*
main.nuevoJugador = new Jugador();
addChild(main.nuevoJugador);
main.nuevoJugador.x = 25;
main.nuevoJugador.y = 344;
*/
}
trace(main.nuevoJugador);
trace(main);