我正在开发一个非常图形化的应用程序,它使用来自一堆不同FLA的内容。我是一名程序员,所以我想在Flash Builder中完成所有编码,但是我想让我的设计师仍然使用一些时间轴动作,例如stop();甚至一些简单的按钮处理程序来改变视图。我一直在努力为这种设置找到最好的工作流程;我尝试过使用Embed,但是它删除了时间轴代码,我尝试过Loader但是没有给我任何代码完成或编译时检查,而且我目前正在使用SWC和自定义类来子类化内部元素SWC,这似乎是迄今为止最好的混合 - 你得到代码完成和时间轴脚本仍然有效。我遇到的问题是我在Flash中有一个相当复杂的视图,我想将实际类分配给库中的其他一些资产,但是当它们在SWC中导出时它们不会保持它们的类关联。
作为一个例子,假设我在库中有一个名为View的符号的FLA。我给它一个“com.company.view.design.ViewDesign”的链接类。在这个视图中有3个框架,每个框架上有一个不同的符号,称为“content1”,“content2”和“content3”。我给出了类似的链接类“com.company.view.design.Content1”等。在我的主代码库中,我有一个名为com.company.view.View的类,它扩展了com.company.view.design.ViewDesign。这使我可以完全访问View符号中的所有内容,这很棒,并且View中的所有时间轴脚本仍然有用。
问题在于 - 这3个内容符号非常复杂,并且是链接到自己的外部类(com.company.view.Content1等)的主要候选者,但如果我尝试在Flash中执行此操作,我实例化com.company.view.View我收到错误“Type Coercion failed:无法将flash.display :: MovieClip @ 20bec5e1转换为com.company.view.Content1”。
那么有没有解决方案,或者我只是需要将SWC视为更多的库并以编程方式构建视图,使用与我用于View的内容窗格相同的继承模式?我希望我的设计师能够处理尽可能多的布局,但是随着视图越来越复杂,我不希望必须将单个视图的所有功能集成到一个整体类中(com.company) .view.View)。
答案 0 :(得分:1)
正如你所说,SWC是要走的路。 我想我遇到了一个非常类似的情况,我建议你check this question出去。Here是一个虚拟项目。
另外,如果它可能加快开发时间,我已经使tiny extension声明了舞台实例,初始化它们并将它们放在剪贴板中,以便您可以将它添加到链接类中。您最初需要做的就是在闪存面板中设置命名方案,然后您需要的所有内容都是生成按钮。
我希望你的设计师有SVN设置。设计师讨厌SVN!你可以用像Versions或Cornerstone这样的mac看起来很可爱的东西来欺骗他们。
古德勒克!
答案 1 :(得分:0)
你的com.company.view.Content1类是否扩展了MovieClip? 如果不是,则无法将它们添加到舞台中,Flash将抛出该错误。
答案 2 :(得分:0)
在运行时加载剪辑时,所有类信息都将丢失。这是你问题的根源。在这种情况下,我成功使用了以下technique。此技术有助于加载电影并重新构建课程信息。 Grant Skinner在前一段时间对此进行了详细介绍,这也适用于纯闪存应用程序,即使文章讨论了Flex。