在 Actionscript3 中编写 MXML 代码
Posted
技术标签:
【中文标题】在 Actionscript3 中编写 MXML 代码【英文标题】:Write MXML Code in Actionscript3 【发布时间】:2015-12-22 03:28:27 【问题描述】:我有以下 MXML 代码,但我需要从 Actionscript 运行它。我怎样才能在 AS 中写这个?非常感谢!!
<?xml version="1.0"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
applicationComplete="applicationCompleteHandler()">
<fx:Script>
<![CDATA[
private var bannerIntegration : BannerAd;
public function applicationCompleteHandler():void
Security.allowDomain("*");
bannerIntegration = new BannerAd(banner);
]]>
</fx:Script>
<s:Image id="banner" />
</s:Application>
【问题讨论】:
【参考方案1】:这只是记忆,因此可能需要一些调整:
基本上你会创建一个普通的
class SpecialApplication extends Application
在您的 IDE 或 mxmlc 调用中,您选择 SpecialApplication 作为要构建的类。 在类中,您拥有现在拥有的属性:
private var bannerIntegration : BannerAd;
private var banner:Image;
对于您的示例,其他所有内容都很容易回答,但我确信这不是完整的应用程序,因此您应该阅读一些有关 Flex 生命周期的内容(请注意查看正确的内容:用于 Flex 3 的那个。 * 与 Flex 4 中的有点不同。*) 所以理想
override protected function createChildren():void
创建和添加 UI 元素:
if (image == null)
image = new Image();
image.width = 300;
image.hight = 250;
addChild(image);
bannerIntegration = new BannerAd(banner);
我不确定Security.allowDomain("*");
是否需要一些特殊的时间,也许你也可以在createChildren()
内进行。
否则,您可以使用与上述脚本块中相同的方法(带有额外的event:FlexEvent
参数)来执行此调用。做吧
addEventListener(FlexEvent.CREATION_COMPLETE, applicationCompleteHandler)
在构造函数内部。
createChildren()
中的if
用于确保只创建一次 ui 元素。因为每次添加此组件时都会调用createChildren()
。 (在 Application 中不是那么重要,但是使用 ActionScript 类创建组件的好习惯。
【讨论】:
以上是关于在 Actionscript3 中编写 MXML 代码的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flex 附加带有 ActionScript3 的 Sprite
在用 Actionscript 和 MXML 编写的 Flex 程序中调试内存泄漏的最佳方法是啥?
Actionscript 3 setStyle 不是一个函数