MXML 和用于移动设备的 ActionScript 之间的真正区别是啥?

Posted

技术标签:

【中文标题】MXML 和用于移动设备的 ActionScript 之间的真正区别是啥?【英文标题】:What is the real difference between MXML and ActionScript for mobile?MXML 和用于移动设备的 ActionScript 之间的真正区别是什么? 【发布时间】:2011-05-29 10:53:27 【问题描述】:

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

    当我在 MXML 中声明一个组件时,幕后究竟发生了什么?

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

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

    李>

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

【问题讨论】:

【参考方案1】:
    当我在 MXML 中声明一个组件时,幕后究竟发生了什么?

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

    对象之间到底有什么区别 由 as3 创建的和由 MXML?

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

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

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

(目前我没有实际的 设备进行测试,并且没有 我的桌面上的性能下降 使用 MXML ItemRenderers 时的计算机 对于包含数百个项目的列表。)

澄清一下,您意识到基于列表的类只呈现屏幕上的内容,对吧?因此,即使您的列表有数百个项目,它也很可能一次只显示 5-10 个。这意味着只创建了 5-10 个渲染器。滚动列表是模拟的,不是真实的。渲染器只是改变他们的数据。无论如何,我试图提出的观点是,包含数百个项目的列表应该与包含十个项目的列表或包含一千个项目的列表具有相同的效率。我希望您会在桌面和设备上看到截然不同的性能。

【讨论】:

提及的文章已移至developria.com/2010/05/7-reasons-to-write-in-actionsc.html

以上是关于MXML 和用于移动设备的 ActionScript 之间的真正区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Flex4 mxml 架构

AIR:基于窗口的 mxml 组件中的组件被冻结

通过从 flex 中的另一个 mxml 文件访问组件来使组件不可见

将自定义样式属性添加到 MXML 自定义组件

XML_MXML:用PHP创建Adobe Flex应用

用于浏览器和移动设备的 Ionic 2 Storage