【问题标题】:Placing movieClip object in AS3 below(in depth - think of z-index) timeline layer in Flash将movieClip对象放置在下面的AS3中(深入-想想z-index)Flash中的时间线层
【发布时间】:2014-10-28 13:19:15
【问题描述】:

我正在制作一个 Flash 广告。我使用 AS3 生成的对象以及手动放置在时间轴中的影片剪辑。尽管 AS3 图层位于我手动放置的时间线图层下方,但 AS3 放置的影片剪辑在“我的时间线图层之上/之上/具有更高的 z-index”可见。

我知道通过display list model 处理 AS3 生成对象的显示顺序,就像讨论过的here

但是,我找不到时间线层(Flash IDE 层)与 AS3 生成的“显示对象容器”相关联的信息。 编辑:显然 IDE 层超出了显示列表模型的范围,但我没有来源。

基本上,我只想确保我的透明 clickTag-button-layer 在我的广告中的所有内容之上。目前AS3放置的movieClips在它上面。

【问题讨论】:

  • 提供您正在使用的代码添加和操作这些影片剪辑的深度。否则,我们只能推测您的问题可能是什么。话虽如此,您需要考虑在时间轴中手动放置一个空的 MovieClip,在其他对象下方,并将您的 AS3 生成的对象添加到其中。
  • 您可能还想遍历您舞台上的孩子并查看他们的顺序。stage.getChildIndex() 您会惊讶于时间线对象的索引与 AS 代码放置的索引的差异.
  • 谢谢,我会尝试那种空的 MovieClip 方法。我没有添加任何代码,因为目前我根本没有更改 AS3 生成对象的“排序”。我尝试了显示列表模型中的容器方法,但这并没有解决我的问题。
  • @C.Parcell 谢谢,这解决了我的问题。我在放置 AS3 生成的内容的位置放置了一个空的 MovieClip。刚才我也找到了信息,Flash IDE 层不是 AS3 显示列表模型的一部分,因此无法从 AS3 进行管理。
  • 这是时间问题。我确实假设您使用多个框架,在这种情况下,当您在框架中移动时,内容总是会一次又一次地生成,这意味着它会超越一切。这是一个时间问题,因为代码生成的所有内容都应该在时间线内容出现之后添加到顶部。如果它出现在它的下方,是因为该代码在添加时间线内容之前运行。

标签: actionscript-3 flash


【解决方案1】:

我不知道我是否理解您的问题,但您可以使用setChildIndex 设置元素深度,查看此处了解更多信息:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#setChildIndex()

【讨论】:

  • 谢谢,但在我使用 Flash IDE 层和 AS3 生成的内容的情况下,这并没有帮助。我尝试了这种方法,并将索引设置为 0 甚至负值,但 AS3 生成的内容仍然放在我图层中的内容之上。
  • 你应该在绘制完所有这样的元素后这样做:function set_depths(){ var n = this.numChildren; n--; setChildIndex(clp_01, n); n--; setChildIndex(clp_02, n); n--; setChildIndex(clp_03, n); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 2011-02-24
相关资源
最近更新 更多