4

我正在开发一个非常图形化的应用程序,它使用来自一堆不同 FLA 的内容。不过,我是一名编码员,所以我想在 Flash Builder 中完成所有编码,但是我想让我的设计师仍然使用一些时间线操作,例如 stop(); 甚至一些简单的按钮处理程序来更改视图。我一直在尝试为这种设置找到最佳工作流程;我尝试过使用 Embed,但这会剥离时间线代码,我尝试过 Loader,但它没有给我任何代码完成或编译时检查,我目前正在使用 SWC 和自定义类来子类化里面的元素SWC,这似乎是迄今为止最好的组合 - 您可以完成代码并且时间线脚本仍然可以工作。我遇到的问题是我在 Flash 中有一个相当复杂的视图,而且我

例如,假设我有一个 FLA,库中有一个名为 View 的符号。我给它一个“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 我收到错误“类型强制失败:无法将 flash.display::MovieClip@20bec5e1 转换为 com.company.view.Content1”。

那么是否有任何解决方案,或者我只需要将我的 SWC 更多地视为一个库并以编程方式构建视图,对内容窗格使用与视图相同的继承模式?我希望我的设计师能够处理尽可能多的布局,但是随着越来越复杂的视图,我不想将单个视图的所有功能放入一个整体类(com.company .view.View)。

4

3 回答 3

1

正如你所说,SWC是要走的路。我想我遇到了非常相似的情况,我建议你检查一下这个问题是一个关于这种方法的虚拟项目。

另外,如果它可以加快开发时间,我已经做了这个小扩展来声明阶段实例,初始化它们并将它们放在剪贴板中,这样你就可以将它添加到你的链接类中。您最初需要做的就是在 Flash 面板中设置一个命名方案,然后您所需要的只是生成按钮。

我希望你的设计师有 SVN 设置。设计师讨厌SVN!你可以用一些在 Mac 上看起来很可爱的东西来欺骗他们,比如VersionsCornerstone

祝你好运!

于 2009-11-17T20:50:24.517 回答
0

您的 com.company.view.Content1 类是否扩展了 MovieClip ?如果不是,它们无法添加到舞台,Flash 将抛出该错误。

于 2009-11-23T02:38:40.387 回答
0

在运行时加载剪辑时,所有类信息都会丢失。那是你问题的根源。在这种情况下,我成功地使用了以下技术。这种技术有助于加载电影和重构类信息。Grant Skinner 前段时间详细介绍了这一点,这也适用于纯 Flash 应用程序,尽管文章谈到了 Flex。

于 2009-11-23T17:52:28.320 回答