我对我的ActionScript项目中的代码很好奇:
public var _p:Object
...在函数中:
public function WObject(pp:MovieClip)
{
_p = pp;
_p.Play();
}Play()函数在MovieClip中,但不在Object中;ActionScript可以允许这样的语法吗?
发布于 2009-11-25 10:40:42
因为任何AS3对象都是Object的子对象,所以可以将MovieClip向object下转换。这是由于AS3对象的动态特性(因为AS3是基于ECMAScript的),这将允许您在包含MovieClip的对象上调用play()等方法,而无需编译器/播放器向您抛出尖锐的对象。
话虽如此,除非绝对必要,否则使用这种方式向下转换not通常是一个很好的实践,因为这往往会使代码更难理解和维护。
其他注意事项包括编译时类型检查和代码提示(参数提示、代码完成等)。如果您选择向下转换为Object,则这些内容将不可用。
https://stackoverflow.com/questions/1794304
复制相似问题