切换到AS3之后,我一直在摸索出管理影片剪辑的最佳方法,这些影片剪辑的UI元素分布在多个框架中,只有一个类。我正在处理的一个示例是一个简单的电子邮件表单。我有两个帧的电影剪辑:如何最好地管理带有类的多帧影片剪辑?
- 第一帧的形式元素(文本输入,提交按钮)
- 第二架有“谢谢”的字样和一个按钮返回到第一框架(发送另一封电子邮件)
在库中,我已将MovieClip链接到自定义类(Emailer
)。我的直接问题是如何将MouseEvent.CLICK
事件分配给第二帧上的按钮?在这一点上我应该注意到,我试图避免在时间轴上放置代码(stop()
调用除外)。这就是我现在的“解决”的问题:
Emailer
注册了一个框架变化(addEventListener("frame 2", onFrameChange)
)- 在影片剪辑的第二帧我打电话
dispatchEvent(new Event("frame 2"));
事件侦听器(我宁愿不有框架的代码,但我不知道自己还能做些什么)
我的两个投诉该方法是,首先我要addEventListener
在不同类的方法传播出去(我宁愿有电话所有UI事件监听器都在一个方法中注册),其次我必须调度h那些自定义的“onFrameChange”事件。对于超过2帧的影片剪辑,第二宗投诉呈指数增长。
我所谓的解决方案感觉让我觉得脏,让我的大脑受伤。我正在寻找什么不同的建议。也许我应该看到一种设计模式?即使我的应用程序的其余部分是用类文件编写的(我厌恶Flash IDE代码编辑器),我是否应该忍受自己的骄傲并编写时间轴代码?
我绝对喜欢这个事件系统,并且在编写应用程序时没有任何问题,但是我觉得我在使用mutl-frame动画片段和代码时,在思考AS2方面存在困难。任何和所有的帮助将不胜感激。
你根本没有误解:)我已经完成了你的快速和肮脏的解决方案之前,当它工作,我不喜欢在第一帧(第一帧我担心资源hogging/slow down)。如果我排除了多帧编码风格,你会推荐采取什么样的方式? MC的每一帧会变成一帧MC上的相应类吗? – 2010-05-09 16:50:56
是的,这将是我的另一个建议,但我不确定如何最好地建议您以可管理的方式工作该解决方案。取决于有多少不同的帧有不同的信息,它可能会失去控制。但根据您显示的信息,您可能会将许多帧浓缩为仅有的一个基本类,其中包含可根据要显示的内容调整大小和重新定位的动态文本框。使用多个框架的更复杂的示例是什么? – debu 2010-05-09 21:18:42
我同意。使用多个框架对动画很有用,但对定义UI和应用程序流程很不利。只要让两种不同的形式成为不同的动画片段,并根据需要创建/销毁(或隐藏/取消隐藏)即可。 – davr 2010-05-11 01:32:26