`

在FlexBuilder3中使用Actionscript3进行元编程

    博客分类:
  • flex
阅读更多

http://flash.9ria.com/thread-46708-1-1.html我对as3元编程的兴趣始于,Ely Greenfield博客上的一篇文章(http://www.quietlyscheming.com/b ... ax-no-not-that-one/)。其中关于flash.utils.describeType():XML的用法在一瞬间吸引了我的眼球。在过去的一年内,我从没见到任何人使用过。

如果你在一个类中调用describeType(this),将会返回类中非静态的公共成员。其目的是为了“对象的自我测量”,换句话说,是为了在运行时查看类中的元素,例如属性和方法。这相当于使用for…in循环去扫描对象的属性。如果你想和getDefinitionByName()共同使用。例如describeType(getDefinitionByName(“myClass”)),那么该方法只会返回目标的静态成员。

那么看看Ely在他博客中怎么说的:“Flex2开发周期快要结束的时候。我们给FlashPlayer API加入了一个特性,就是允许我们在运行时通过describeType()使用一些ActionScript的元数据。在Flex2.01的时候,我们最终使得‘开发人员能够在运行时定义哪些元数据被保存’变得可能了。到Flex3的时候,我们已经让它变得更容易去保存元数据了。一些人已经发现了这个功能,并开始使用它去做一些有趣的事情。”

Ely接着演示了一个例子,展示了一些可能使用的元数据,并且做了一个demo,在一个网页上他称之为“通过元数据阐述绑定和响应”,在另外一个网页上称之为“通过自定义ActionScript元数据进行元编程”。但它真的很有趣,你真该看看。

于是我开始尝试使用元数据,但起初并不太顺利。我能够编译Ely的demo,但第一次自己写的时候失败了。于是我通过google搜索了一下,发现另外一篇名为“在Flex中创建我们自己的元数据” http://orangeflash.eu/?p=45的文章。我尝试去它的代码,但是使用-load-config+="meta-config.xml"编译配置的时候,又长生一个错误。我检查mxmlc的命令行选项,似乎是在说mxmlc 3(189825)需要在-load-config和xml文件间需要加一个空格。哦,好的。无论如何,元数据很有趣。加下来我们来看看代码
Index.mxml
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:script>
<!--[CDATA[
import flash.utils.describeType;
private var metaData:MetaDataExample = new MetaDataExample();
private function displayDescription():void
{
textArea.text = describeType(metaData);
}
]]-->
</mx:script>
<mx: TextArea width="100%" height="100%" id="textArea" />
<mx: Buttonlabel="Describe" click="displayDescription()" />
MetaDataExample.as
package
{
import flash.utils.*;
public class MetaDataExample
{
public function MetaDataExample()
{
}
[Orange(size="very big", isTasty="Yes Yes Yes Yes!")]
public function get prop():String
{ return "hello"; }
public function set prop(value:String):void
{ }
}
}
复制代码
meta-config.xml
<flex-config xmlns="http://www.adobe.com/2006/flex-config">
<compiler>
<keep-as3-metadata>
<name>Orange</name>
</keep-as3-metadata>
<keep-generated-actionscript>true</keep-generated-actionscript>
<source-path></source-path></compiler></flex-config>
<path-element>.</path-element>(译注:这对标签我加上去编译就报错)
复制代码
编译参数:-locale en_US -keep-as3-metadata Orange -load-config "/Users/nuno/Desktop/Projects/FlexWorkspace/MetaDataTest/src/meta-config.xml"(记得加空格)

这是我第一个使用ActionScript3元数据的实验。我想我会做更多的实验。因为在运行时载入一个SWF文件或者其他情况下,创建和使用元数据是一件很有意思的事情。

分享到:
评论

相关推荐

    FlexBuilder+3+中文教程

    - 项目创建:讲解如何在FlexBuilder 3中创建新项目,设置项目属性,以及导入外部库。 - 调试技巧:包括断点设置、步进执行、查看变量值等,帮助开发者定位和解决问题。 - 资源管理:如何组织和引用图片、字体等资源...

    FlexBuilder 3 中文教程.rar

    在FlexBuilder 3中文教程中,你将学习到以下关键知识点: 1. **Flex基础**:Flex是基于ActionScript 3.0的编程框架,用于创建交互式的、数据驱动的Web应用。教程会介绍Flex的基本概念,如MXML(标记语言)和...

    flex builder 3 plugin part6

    2. **MXML与ActionScript支持**:Flex Builder 3支持MXML和ActionScript两种编程语言。MXML是一种声明式语言,用于构建用户界面,而ActionScript是面向对象的脚本语言,处理逻辑和交互。两者结合,能构建功能丰富的...

    Flex Builder 3序列号

    在探讨“Flex Builder 3序列号”的相关内容时,我们首先需要了解Flex Builder 3这款软件的基本情况及其在软件开发领域中的应用。 ### Flex Builder 3简介 Flex Builder 3是Adobe公司推出的一款专为开发Flex应用...

    flex builder 3 格式化代码

    本文将详细介绍如何在Flex Builder 3中进行代码格式化以及自动添加注释的操作步骤。 首先,为了实现代码格式化的功能,我们需要引入外部的插件。这里提到了两个关键的JAR文件:`ActionscriptInfoCollector_0.7.3....

    使用FlexBuilder3制作并导出AIR1.0正式版应用

    描述中提到的“source & air”暗示我们将探讨如何使用FlexBuilder3来编写源代码,并将其打包成AIR 1.0应用程序。博文链接虽然不可访问,但我们可以推断其内容可能包含以下步骤: 1. **安装FlexBuilder3**: 首先,你...

    flexbuilder3 的一个小实例

    FlexBuilder3是一款强大的开发工具,主要用于构建富互联网应用程序(Rich Internet Applications,RIAs),它基于Adobe Flex框架,为开发者...记得解压文件并导入到FlexBuilder3中查看和运行,以加深对Flex编程的理解。

    flex builder中文教程

    3. **组件库**:详细阐述Flex提供的各种预定义组件,如按钮、文本框、列表等,以及如何在界面设计中使用它们。 4. **事件处理**:解释事件模型,如何绑定事件监听器,以及如何处理用户交互。 5. **数据绑定**:...

    FlexBuilder3常用快捷键

    通过合理利用这些快捷键,开发者可以在FlexBuilder3中更加高效地进行开发工作。无论是代码编辑、文件管理还是项目构建,这些快捷键都能够极大地提高工作效率,使得开发过程变得更加流畅。希望本文介绍的这些快捷键...

    flex中文教程伴有flexbuilder

    3. **FlexBuilder的使用**:FlexBuilder是基于Eclipse的IDE,它提供了丰富的代码编辑、调试和项目管理功能。教程会教授如何安装和配置FlexBuilder,以及如何利用其进行开发、测试和调试Flex应用。 4. **组件库**:...

    Flex Builder

    在Flex开发过程中,日志记录是调试和问题排查的重要环节,因此了解如何在Flex Builder中设置和管理日志输出至关重要。 日志记录是跟踪应用程序运行时状态的有效手段,它可以帮助开发者了解程序执行的细节,找出潜在...

    flex builder 3 plugin part1

    在Flex Builder 3中,用户可以直接集成SDK,无需单独下载。Part1可能会引导用户配置SDK路径,以便在IDE中创建新项目时使用。 在创建Flex项目时,Flex Builder 3提供了多种模板,如MXML Application、ActionScript ...

    FlexBuilder2帮助文档

    在压缩包中包含的五个FlexBuilder2文档可能是用户手册、编程指南、API参考、教程和示例代码等资源,这些文档对于深入理解和使用FlexBuilder2至关重要。以下是可能涵盖的一些关键知识点: 1. **FlexBuilder2界面**:...

    flex builder 4 help

    《Flex Builder 4 Help》这个英文文档是Flex Builder 4用户的重要参考资料,它详细阐述了如何使用该IDE进行Flex开发。下面,我们将深入探讨其中的关键知识点: 1. **Flex SDK和Flash Player**:Flex Builder 4基于...

    Flex builder4.0注册码 Flex builder 3.0注册码 Flex builder4.0下载地址

    这包括掌握MXML和ActionScript编程语言,熟悉Flex框架和组件库,以及掌握各种工具和插件的使用,如调试器、性能分析器等。通过参加在线教程、阅读官方文档、参与社区讨论等方式,可以不断提升自己的开发技能,从而在...

    Adobe Flex Builder 3.0官方开发教程

    通过这个IDE,开发者可以使用MXML和ActionScript 3.0进行编程,这两种语言是Flex应用的核心组成部分。MXML是一种声明性语言,用于定义用户界面布局和组件,而ActionScript 3.0则提供了面向对象的编程能力,处理逻辑...

    FlexBuilder

    总的来说,这个压缩包是学习和实践FlexBuilder中使用AS3发送电子邮件的好资源。通过阅读和实践这些文档和代码,初学者可以深入了解如何在Flex环境中实现邮件通信功能,从而提升自己的编程技能。记住,实践是检验理论...

    FlexBuilder3 Debug.rar

    1. **FlexBuilder3**: FlexBuilder3是Flex SDK的配套开发工具,它支持MXML和ActionScript 3.0编程,这两种语言是构建富互联网应用程序(RIA)的基础。FlexBuilder3提供了一整套代码编辑、调试、构建和部署工具,使得...

Global site tag (gtag.js) - Google Analytics