错误1119当试图访问图形的属性,这是一个图像在flashpunk



我创建了一个新的实体,并将实体图形定义为来自嵌入式图像文件的新图像。

graphic = new Image(PLAYER);

PLAYER是一个嵌入图像,现在既然图形是这个图像现在,我应该能够做的事情,如centerOrigin()或angle(),但我不能?它在Flash IDE中工作,但现在我已经切换到Flash Builder使用flashpunk,它给了我一个错误1119,无法通过静态类型net.flashpunk:Graphic访问属性centerOrigin()。

我做错了什么?很多教程都说这是可行的。如果它应该工作,但问题是环境,而不是我的程序,什么是一个解决方案?

下面是我的实际代码:
public class Projectile extends Entity{
    public var bearingIN:Number;
    public var speedIN:Number;
    public function Projectile(bearing,speed,gunX,gunY) {
        setHitbox(2,2);
        bearingIN = bearing;
        speedIN = speed;
        graphic = new Image(new BitmapData(8,1,false,0xFFFF32));
        type = "projectile";
        graphic.centerOrigin();
        graphic.angle = (bearing / (Math.PI/180))*-1;
        layer = 255
        x = gunX + 16;
        y = gunY + 16;
        addTween(new Alarm(20,removeProj,2), true);
    }
    private function removeProj(){
        FP.world.remove(this);
    }
    public override function update():void{
        x += Math.cos(bearingIN)*speedIN;
        y += Math.sin(bearingIN)*speedIN;
        if(collide("wall",x,y)){
            removeProj();
        }
    }
}

Entity类的graphic属性为Graphic类型。然而,Graphic类没有centerOrigin方法,只有Image有。所以你需要cast它。对centerOrigin():

行执行此操作
((Image)graphic).centerOrigin();

您必须为angle做同样的事情。

最新更新