【问题标题】:TweenLite does not work with objectTweenLite 不适用于对象
【发布时间】:2011-07-22 23:11:14
【问题描述】:

我遇到了以下问题:

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

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

我尝试将几个不同的 TweenLite 插件应用于我的 tempScore 对象(即 TransformAroundCenter、colorMatrixFilter 等)。但什么也没有发生。完全没有。

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

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

我的游戏基于以下代码: http://www.8bitrocket.com/book/ch11_blastermines.zip

尝试在游戏类 BlasterMines 中应用 TweenLite 和一个名为 tempMine 的对象。它行不通。请帮忙?

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    Greensock 的说法是正确的,因为它是准确的。 您可以对任何对象的任何数字属性进行补间。 此语句不包括插件功能的应用。

    TransformAroundCenter 和 ColorMatrixFilter 插件不适合您的原因是它们各自使用了DisplayObject 的某些属性或方法。在 transformAroundCenter 的情况下是 DisplayObject.localToGlobal(),对于 ColorMatrixFiler 是 DisplayObject.filters

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 2021-04-28
      • 2012-01-05
      • 2016-05-14
      • 2015-01-06
      • 2015-07-18
      • 2015-05-08
      • 2012-03-30
      • 1970-01-01
      相关资源
      最近更新 更多