apache-flex - 用于移动设备的 MXML 和 ActionScript 之间的真正区别是什么?

标签 apache-flex actionscript-3 mobile mxml

Adobe 建议在 Flex Hero 移动应用程序中对皮肤和 ItemRenderer 使用 ActionScript。我的印象是 MXML 被编译成 ActionScript。

  1. 当我在 MXML 中声明组件时,幕后到底发生了什么?

  2. as3创建的对象和MXML创建的对象到底有什么区别?

  3. 如果我将 MXML 组件转换为 as3 类(即添加每个子组件并在代码中手动设置每个子组件的每个属性,而不是在声明性 MXML 语法中),我会得到什么吗?

    <

(目前我没有实际的设备来测试,并且在我的台式计算机上使用 MXML ItemRenderer 处理包含数百个项目的列表时没有性能下降。)

最佳答案

  1. What exactly is going on behind the scenes when I declare a component in MXML?

你关心的是正确的。 MXML 被编译成 ActionScript。您可以使用 keep 编译器参数查看此 ActionScript。它可能会变得非常复杂。你手写的代码要优雅得多。我想这就是 Adob​​e 告诉我们将 AS 用于移动皮肤的原因。

  1. What exactly are the differences between the objects created by as3 and those created by MXML?

如果你指的是内存中的对象,那没有区别。 MXML 组件是类,就像 ActionScript 组件一样。但是,如果您使用 MXML 生成 ActionScript,则实际运行的组件具有不同的代码库。

  1. If I convert a MXML component into an as3 class (i.e. add each child and set each property on each child manually in code instead of in the declarative MXML syntax) am I gaining anything?

您可以更精细地控制组件的工作和操作方式。我为 InsideRIA 写了一篇关于这个主题的文章:http://insideria.com/2010/05/7-reasons-to-write-in-actionsc.html

(At the moment I do not have an actual device to test on, and there is no performance degradation on my desktop computer when using MXML ItemRenderers for a List with hundreds of items.)

需要澄清的是,您意识到基于列表的类只渲染屏幕上的内容,对吗?因此,即使您的列表有数百个项目,它也很可能一次只显示 5-10 个。这意味着只创建了 5-10 个渲染器。滚动列表是模拟的,不是真实的。渲染器只是更改它们的数据。不管怎样,我想表达的意思是,包含数百个项目的列表应该与包含十个项目的列表或包含一千个项目的列表具有相同的效率。我希望您会在桌面和设备上看到截然不同的性能。

关于apache-flex - 用于移动设备的 MXML 和 ActionScript 之间的真正区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4510196/

相关文章:

ios - 如何通过代码退出(或暂停)Flex 4.5 iPhone 应用程序?

apache-flex - 我可以使用哪些算法来计算音量?

apache-flex - Facebook iFrame 应用程序 : How to pass data from URL Query String

ruby-on-rails - 如何创建一个网络服务

ios - 通过AS3使固有振动在iOS上运行

javascript - React Native 上的设备方向

android - AS3 Shoutcast 流在 AIR 3.2 中不起作用

actionscript-3 - Actionscript 3 - 经常并行播放声音

.net - .net 中使用什么概念来创建移动软件?

nginx - 如何配置 Nginx 从两个不同的文件夹提供桌面版本和移动版本