TweenLite不适用于对象

时间:2011-07-22 23:11:14

标签: actionscript-3

我遇到了以下问题:

我的游戏中有一个名为tempScore的对象。

渲染器通过copyPixels方法将此对象blitting到画布。该对象不是显示对象。这是一个得分对象(自制)。 Score-object扩展了一个名为BasicBlitArrayObject的对象。 BasicBlitArrayObject扩展了EventDispatcher(因此没有显示对象)。

我尝试将几个不同的TweenLite插件应用于我的tempScore对象(即TransformAroundCenter,colorMatrixFilter等)。但没有任何反应。绝对没有。

有时我会收到错误消息(当插件需要显示对象且我的对象不是显示对象时)。到目前为止一切都很好。

根据Greensock(Tweenlite的制造商),他的引擎可以补间任何对象的任何数字属性。因此,当像TransformAroundCenter这样的插件需要显示对象进行补间时,我必须修改插件以使其适用于我的非显示对象(tempScore)。目前我不能这样做,因为这对我来说太难了。

我的游戏依赖于此代码: http://www.8bitrocket.com/book/ch11_blastermines.zip

尝试在游戏类BlasterMines中将TweenLite与名为tempMine的对象一起应用。它不会起作用。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

格林索克的说法是正确的,准确无误。 您可以补间任何对象的任何数字属性。此语句不包括插件功能的应用。

TransformAroundCenter和ColorMatrixFilter插件不适合您的原因是它们各自使用DisplayObject的某些属性或方法。如果是transformAroundCenter,那是DisplayObject.localToGlobal(),而对于ColorMatrixFiler则是DisplayObject.filters

我必须问你为什么要将这些插件应用于不是显示对象的东西?在blitting中(因为它适用于AS3),基本的想法是你从精灵表中读取一个区域到一个BitmapData对象,然后你就可以在舞台上写入一个Bitmap对象。 BitmapData和Bitmap都扩展了DisplayObject,这正是您所需要的。为了获得更高的兼容性,您应该定位实际位于舞台上的Bitmap对象,TransformAroundCenter将无法正常使用不在舞台上的对象。

要获得更好的答案,您必须发布一些代码,并且可能会显示来自Monster Debugger 3等调试器的屏幕截图,其中显示了展开的显示树。