Actionscript 3 使用sprite类在as3中获取定义

Actionscript 3 使用sprite类在as3中获取定义,actionscript-3,flash,Actionscript 3,Flash,我有个问题。我已经能够使用as3isolib库(IsoSprites)成功运行我的游戏,但是当我在互联网上搜索时,IsoSprites没有hitTestObject或hitTextPoint功能。因此,我将等轴精灵更改为精灵,但当我已将等轴精灵更改为精灵时,出现以下错误: 1119:通过 参考静态类型闪光灯。显示:精灵 并指出: Constant.dudefis.sprites=[efisFrontClass] 杜德菲斯是雪碧 我知道精灵没有以下功能: 花花公子 但问题是,如果我将“dudefi

我有个问题。我已经能够使用as3isolib库(IsoSprites)成功运行我的游戏,但是当我在互联网上搜索时,IsoSprites没有hitTestObject或hitTextPoint功能。因此,我将等轴精灵更改为精灵,但当我已将等轴精灵更改为精灵时,出现以下错误:

1119:通过 参考静态类型闪光灯。显示:精灵

并指出:

Constant.dudefis.sprites=[efisFrontClass]

杜德菲斯是雪碧

我知道精灵没有以下功能:

花花公子

但问题是,如果我将“dudefis”更改为IsoSprite,我将无法获得hitTestObject或hitTestPoint。如果我换成雪碧,我就会犯这个错误。我如何解决它?我给你们的代码是运动面向方向(当玩家朝南时,角色也朝南)

代码如下:

public static var loaderEfis:Loader;
public static var dudeEfis:Sprite; //public static var dudeEfis:IsoSprite;
public static var _numXEfis:Number = 0;
public static var _numYEfis:Number = 0;

Constant.loaderEfis = new Loader();

Constant.loaderEfis.load(new URLRequest("efis.swf"));

var efisFrontClass:Class = Constant.loaderEfis.contentLoaderInfo.applicationDomain.getDefinition("EfisFront") as Class;

if (Constant._numXEfis == 0 && Constant._numYEfis == 0)
{
    Constant._numXEfis = Constant.dudeEfis.x;
    Constant._numYEfis = Constant.dudeEfis.y;

    Constant.dudeEfis.sprites = [efisFrontClass];
}

任何帮助都将不胜感激!提前谢谢你

听起来你已经知道问题出在哪里了。解决这个问题的一种方法是创建自己的类来扩展
IsoSprite
类,然后自己添加
hitTestObject
hitTestPoint
方法,它们很容易实现

package {
    import flash.display.DisplayObject;
    import flash.geom.Point;

    public class MyOwnSprite extends IsoSprite {
        public function hitTestObject (object:DisplayObject):Boolean {
            //some logic here
        }

        public function hitTestPoint (point:Point):Boolean {
            //some logic here
        }
    }
}

这样,您就可以保留
IsoSprite
的所有功能,同时拥有您需要的这两种方法。

您应该更改问题标题。它与
GetDefinition
完全没有关系。那么,我必须访问MyOwnSprite扩展的IsoSprite类中的冲突?那个对象代表了所有的同位旋体?系统如何知道哪个IsoSprite指的是什么?例如,我有两个IsoSprite,只想访问第一个IsoSprite,我该怎么做?还是应该使用intersect?因为在IsoSprite中,有一个intersect函数。。hitTestObject和hitTestPoint是否相同?@Kaoru是的,如果扩展
IsoSprite
,您将获得其所有公共属性和方法。至于图书馆本身,我无法回答这些问题,因为我从未听说或知道这个图书馆是如何运作的。为此,您必须查阅文档。