我正在尝试构建一个应用程序,其中设计器在时间轴上创建了一系列关键帧的内容。每个关键帧都完全不同。当应用程序启动时,我选择其中一个框架,将游戏头移动到该框架并停止(使用gotoAndStop)。接下来,通过按名称引用关键帧中的符号,我使用AS3来允许拖放,我也做一些程序化运动。
问题在于,当我使用gotoAndStop移动到时间轴上的不同关键帧时,前一帧中AS3触摸的符号,即使它们未被设计者的关键帧引用,也会显示在舞台上。就好像我与AS3接触的任何DisplayObject都脱离了时间轴。
有没有人对如何以编程方式使用由设计人员手动创建的时间轴(MovieClip)内容提出任何建议。这似乎应该是一个非常常见的用例。似乎我唯一可以安全地使用时间轴做的事情是移动播放头并响应事件(如果我不改变时间轴中DisplayObjects的状态)。此外,是否有关于如何在时间轴播放时分配和销毁对象的良好文档?
谢谢!
答案 0 :(得分:2)
问题在于,当我使用gotoAndStop移动到时间轴上的不同关键帧时,前一帧中AS3触摸的符号,即使它们未被设计者的关键帧引用,也会显示在舞台上。就好像我与AS3接触的任何DisplayObject都脱离了时间轴。
如果您没有在显示对象列表中添加和删除内容,或者切换对象深度,则根本不应该这样。
您确定它们根本没有被设计师关键帧引用吗?否则,您可能希望尝试不同的方法,而不仅仅是在时间线中编码。
将FLA与自定义代码合并的一种方法是让设计人员创建影片剪辑符号,导出它们扩展自定义AS类。这样设计师可以摆弄外观,你的.as类可以控制功能。
要执行此操作,请将您的movieclip设置为“Export for ActionScript”,然后选择您在“Class”字段中编写的类文件。确保您的课程延伸MovieClip
。
这也很棒,因为你可以在你的AS文件中编码,因为设计师在Flash中工作而你不必共享同一个文件。
这不一定能解决您的所有问题,而是一个可能适合您的工作流建议