尝试访问作为 flashpunk 中的图像的图形的属性时出现错误 1119?

Posted

技术标签:

【中文标题】尝试访问作为 flashpunk 中的图像的图形的属性时出现错误 1119?【英文标题】:Error 1119 when trying to access properties of the graphic which is an Image in flashpunk? 【发布时间】:2014-07-31 21:36:42 【问题描述】:

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

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();
        
    


【问题讨论】:

首先,发布您的代码。您的错误是针对centerOrigin(),但您尚未发布该代码。最有可能的是(根据您的错误描述)是您错误地尝试在类本身(就像它是一个静态函数)而不是类的实例上调用该函数。 【参考方案1】:

Entity 类的graphic 属性是Graphic 类型。但是,Graphic 类没有称为 centerOrigin 的方法,只有 Image 有。所以你需要投射它。对centerOrigin() 的行执行此操作:

((Image)graphic).centerOrigin();

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

【讨论】:

以上是关于尝试访问作为 flashpunk 中的图像的图形的属性时出现错误 1119?的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 画布作为 numpy 数组伪影

Web 应用程序中的交互式 Graphviz 图形

使用 plotly 离线生成图形作为图像

打印/图形问题

如何使用opencv比较存储在文件中的两个图像

尝试使用个人资料图像创建导航抽屉作为颤动中的图标