- 浏览: 98154 次
- 性别:
- 来自: 广州
最新评论
-
norain1988:
收藏~正在做这样的转换,但是楼主,我遇到一个问题,我以前的项目 ...
在Flash Builder 4中编译Flex 3项目 -
lctexe:
...
在Flash Builder 4中编译Flex 3项目 -
pc_kai:
...
FLEX地图应用教程之四 -
liaoshaoyao:
在FLex4下地图不能拖动呀, 请问楼主有遇到过这个问题没有呀 ...
FLEX地图应用教程之一 -
whao189:
楼主啊。 你那个点击下载 。。。里面是木马啊。。。,,,,,, ...
FLEX地图应用教程之一
本章是Flex 4 SDK 新特性教程系列 的第4章。本章介绍 了MXML 2009新增的标签,包括:
- Declarations
- Vector
- Library
- Definition
- Private
- Reparent
<Declarations />
Declarations标签是Flex 4中最常用的新增标签。
在Flex
3中,对于一个MXML组件的直接子元素,可以有以下几种情况:
1. 属性标签,例如:
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:text > <mx:String > test</mx:String > </mx:text > </mx:Label >
2. 作为默认属性的值,例如:
List的默认属性为DataProvider
<mx:List xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:ArrayCollection > .... </mx:ArrayCollection > </mx:List >
3. 作为容器的Children:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Button /> <mx:Label /> </mx:Canvas >
4. 声明并创建非可视化对象:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:HTTPService id="sevice" /> </mx:Canvas >
在Flex 4中,对于MXML组件的直接子元素有着更加规范的定义,即:所有直接子元素或者是组件的属性标签,或者是作为组件默认属性的值而存在。 而 容器的默认属性即为其Children的集合(例如Group的默认属性为mxmlContent,DataGroup的默认属性为 dataProvider)。
而对于最后一种情况,在Flex 4中,在MXML中创建非可视化对象,如HTTPService, Effect, 基本数据类型等等,必需通过<Declarations/>标签来完成。例如声明一个HTTPService对象:
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library:ns.adobe.com/flex/spark" > <fx:Declarations > <s:HTTPService id="service" /> </fx:Declarations > </s:Group >
上面的代码等价于ActionScript:
public MyGroup extends Group { private var service: HTTPService = new HTTPService( ) ; }
值得注意的是,Declarations标签也可以用来声明、创建任何可视化组件 ,但是使用该标签创建的组件不 会被加入到DisplayList中,也不会被初始化。你可以在需要的时候再使用它。
<Vector />
Vector是Flash Player 10中新增加的数据类型(结构),大多数情况下,使用Vector比使用Array更加高效。在Flex 4中,你可以通过MXML来创建一个Vector对象,例如:
<fx:Declarations > <fx:Vector id="myVector" type="String" fixed="false" /> </fx:Declarations >
上述代码相当于ActionScript:
public var myVector: Vector.< String> = new Vector.< String> ( 0 ,false ) ;
<Library />和<Definition />
Library标签允许你为当前的MXML组件声明一个”类库“。相应地,Definition标签可以定义该类库中的一个”类”。基本的语法规则 如下:
- 如果使用Library标签,则它必须是MXML或FXG文档中的第一个标签。
- Library标签可以包含一个或多个Definition标签。
- 必须为Definition标签提供name属性作为”类名”,同时Definition标签必须有且只能有一个直接子标签作为其所定义的类的基 类。
- 使用Definition标签定义的类也可以使用<fx:Script />和<fx:MetaData />标签。
- 由Definition标签定义的类属于默认包,需使用MXML 2009的命名空间来引用。如类名为MyClass,则在MXML中使用该类的标签为<fx:MyClass/>。
- Library和Definition标签不可嵌套使用,即在由Definition定义的类中,不能使用Library和Definition 标签。
下面的代码中,使用Library和Definition标签创建了MyClass类及其子类MySubClass:
<!-- MyApp.mxml --> <s:Applicaiton xmlns:fx=... > <fx:Library > <!-- 此处定义了一个名为MyClass的类,继承自Group类 --> <fx:Definition name="MyClass" > <s:Group > <s:Rect width="200" height="200" > <s:fill .../> </s:Rect > </s:Group > </fx:Definition > <!-- 此处定义了一个名为MySubClass的类,继承自MyClass类> <fx:Definiton name="MySubClass" > <fx:MyClass /> </fx:Definition > </fx:Library > <!-- 使用MyClass和MySubClass类 --> <fx:MyClass /> <fx:MySubClass /> </s:Application >
此外,由Definition定义的类的实例,不能赋予id属性(例如,在上面代码中,如果为MyClass实例声明id属性会造成编译错误)。这 本质上是由Library的“私有性”决定的。在大多数情况下,该标签会在FXG中使用,用于定义可重用的图形元素。
小技巧
事实上,尽管不能为Definition定义的类的实例赋予id属性,我们仍然可以获取这些类的
实例的引用,通过查看Flex编译后的AS代码(使用-keep参数)可以发现:所有由Definition定义的类最终会被转化为类名
为”MXML类名_definitionN.as”这样的独立ActionScript类
。
例如,上面例子(MXML类名为
MyApp)中的MyClass和MySubClass最终会被转化为MyApp_definition1和MyApp_definition2。在确定
这些类的实际类名后,我们可以通过一些系统事件来获取这些类的引用并对其进行操作,例如:
<!-- Test.mxml --> <?xml version="1.0" encoding="utf-8" ?> <s:Application xmlns:fx="..." xmlns:s="..." > <fx:Library > <fx:Definition name="MyRect" > <s:Group width="100" height="100" > .... </s:Group > </fx:Definition > </fx:Library > <fx:MyRect creationComplete="myrect1_creationComplete(event)" /> <fx:Script > <![ CDATA[ import mx.events.FlexEvent; private var myRect:Test_definition1 ; <!-- 通过事件获取实例的引用 --> protected function myrect1_creationComplete(event:FlexEvent):void { myRect = event.target as Test_definition1; myRect.x = 200; } ]]> </fx:Script > </s:Application >
<Private />
Private标签用于提供MXML和FXG文档的元信息,标签内的内容会被编译器忽略。尽管如此,你必须保证其内容是有效的XML格式。例如:
<fx:Private > <Author> Jinni Cao</Author> <Version> 1.0</Version> <Site> http://www.SWFever.com</Site> </fx:Private >
<Reparent />
我们将在下一章“改进的视图状态语法”中详细介绍Reparent标签的使用方法。
本章着重介绍了几个MXML 2009新增加的语言级标签。在下一章中,我们将介绍在Flex 4中被大幅改进的一个特性:视图状态(View State)。
发表评论
-
在Flash Builder 4中编译Flex 3项目
2010-04-30 11:33 2847在Flash Builder 4里编译Flex3项目,要了解以 ... -
Flex与JSON及XML的互操作
2010-04-29 15:56 1163Flex之于Java,就像美丽之于大脑,或者还有别的说法?谁能 ... -
FLEX地图应用教程之四
2010-04-29 15:48 1426相信看到这篇的朋友,应该用我前三篇的例子玩过这个地 ... -
FLEX地图应用教程之三
2010-04-29 15:47 1377继续昨天的教程,不过这里要更正下,今天的方法会跟昨天有所不同, ... -
FLEX地图应用教程之二
2010-04-29 15:47 1457在上一步 , 我们已经基本学会如何连接API,显示地图 ... -
FLEX地图应用教程之一
2010-04-29 15:46 2110用FLEX做地图,然后在地图上实现各种应用,我想大家都会非常的 ... -
在Flex中使用GoogleMap
2010-04-29 15:33 1276在Flex中使用GoogleMap,可以让自己的网 ... -
12个Flex常用功能代码
2010-04-21 10:59 8281。 复制内容到系统剪贴板 System.setCl ... -
Flex加载图片,菜单条,编辑器,目录树,图片上传,播放器,
2010-04-15 10:52 16901、加载图片或swf文件 <?xml version=& ... -
Flex画图板(转)
2010-04-14 15:59 906<?xml version="1.0" ... -
java应用jcom将word转pdf
2010-04-14 11:02 15621. java应用jcom将word转pdf ... -
flex+cairngorm+spring+hibernate整合实例
2010-04-12 11:43 1092准备:SQL server2005: JD ... -
FLEX中嵌入html代码
2010-04-12 11:16 877<?xml version="1.0" ... -
java与flex通信
2010-04-12 11:15 750一、准备: 服务 端:JDK1.5 (这个不用 ... -
Flex获取窗体大小 Flex与JS互相调用
2010-04-12 11:15 1742有时我们需要弹出自定义提示框,并显示在屏幕中心,这是需要根据 ... -
flex 3如何通过iframe嵌入html网页
2010-04-12 11:14 1435网上有很多文章写flex嵌入网页的方法,不过这里介绍一种普遍的 ... -
Flex 获取屏幕的分辨率
2010-04-12 11:13 1496<?xml version="1.0" ... -
flex与数据库交互
2010-04-12 11:12 807一》 通过java与数据库交互读取数据,然后flex和java ... -
如何使用mx:RemoteObject
2010-04-12 11:11 1303第一步:创建flex项目时指明项目使用远程数据调用,并指明远程 ... -
flex开发的仿pdf阅读器(swftools将PDF转成swf)
2010-04-12 11:08 3617SWFTools 是一组用来处理 ...
相关推荐
Flex SDK 3.6.0的具体新特性需要查看官方发布说明,可能包括改进的性能、新组件、错误修复、API扩展等。例如,可能会有新的图表组件、对移动设备的支持增强,或者对Adobe AIR平台的优化。 6. **开发流程** 开发...
6. **Spark组件**:在Flex 4.x系列中,引入了Spark组件集,这是一个全新的UI组件模型,旨在提供更好的性能和可定制性。Spark组件支持皮肤ning,允许开发者自定义组件外观。 7. ** GraniteDS**:Flex SDK 4.16.0可以...
它结合了Flex SDK(软件开发工具包)和Flash Player或Adobe AIR(Adobe Integrated Runtime),使开发者能够构建跨平台的应用程序,运行在多种浏览器和操作系统上。 二、ActionScript基础 ActionScript是Flex的主要...
- **Flex 3**: Flex 3 是 Flex 框架的一个版本,引入了多项新特性和改进。 - **Flex Builder**: 一款基于 Eclipse 的集成开发环境(IDE),专为 Flex 和 Flash 开发设计。 - **安装步骤**: - 下载 Flex SDK 和 Flex...
### Flex4权威教程中文版入门知识点详解 #### 一、Flex4简介与环境搭建 - **Flex4概述**:Flex4是一种开源框架,用于构建跨平台的桌面应用程序和Web应用程序。它提供了强大的用户界面(UI)组件库以及高级数据可视...
Flex的核心特性包括使用MXML(一种基于XML的声明性语言)描述用户界面布局和行为,以及使用ActionScript 3.0(一种面向对象的编程语言)编写客户端逻辑。此外,Flex还提供了一个丰富的组件库和交互式调试器,以支持...
4. **Flex组件库**:Flex SDK包含了大量的预定义组件,如按钮、文本输入框、列表、面板等,这些组件可以快速构建用户界面,并且高度可定制。 5. **数据绑定**:Flex支持数据绑定,这意味着视图组件的状态可以直接与...
Flex 4是Adobe Flex平台的一个重大更新,它带来了许多新的特性和改进,使得创建交互式、响应式的Web应用程序变得更加容易和高效。 1. **Flex 4概述**:Flex 4引入了全新的Spark组件模型,与之前的 Halo 组件相比,...
- Flex提供了一系列预定义的UI组件,如按钮、标签、列表等,开发者可以通过MXML或ActionScript来使用这些组件。 - 自定义组件也是可能的,可以通过扩展现有组件或从头创建新的组件类。 5. **数据绑定** - Flex中...
在这些教程中,你可能会接触到如何使用Flex Builder创建新项目,添加组件,以及如何组织和管理代码结构。 Flex SDK是Flex开发的核心工具集,包含了编译器、库和命令行工具。通过SDK,开发者可以构建自定义组件,...
本教程“Flex3.0 RIA开发详解电子教程4”显然是系列教程的一部分,旨在深入讲解Flex3.0的高级特性和开发实践。 1. **Flex SDK与Flash Player**: Flex SDK是开发Flex应用的基础,包含编译器、Flex Builder插件和其他...
Flexlib类库在Flex 4中的关键特性可能包括: 1. **高级组件**:Flexlib可能提供了定制的UI组件,如图表、数据可视化工具或其他复杂交互元素,这些组件可能超越了标准Flex SDK所提供的组件。 2. **动画和效果**:...
综上所述,“经过修改的flex商城”项目涉及了Flex 4的高级特性,包括Spark组件、皮肤定制、ActionScript性能提升,以及针对电商应用的一系列功能实现。对于开发者来说,理解并掌握这些技术是创建高效、美观的Flex...
Flex 4 是 Adobe 引入的一个重要框架,用于构建富互联网应用(Rich Internet Applications,简称 RIA)。...本系列教程将引导初学者逐步掌握 Flex 4 的核心概念和实践技巧,为他们打开 RIA 开发的大门。
3. **Flex4+Spring3+ibatis实战系列教程**: 在这个教程中,可能详细介绍了如何使用Flex 4与Spring3集成,并配合轻量级持久层框架iBATIS进行数据库操作。iBATIS允许开发者编写SQL语句并映射到Java对象,提供了一种...
Flex 3是Adobe Flex系列的一个重要版本,它提供了丰富的用户界面组件库、强大的数据绑定功能以及对ActionScript 3.0的支持,使得开发者能够创建出交互性强、视觉效果优秀的Web应用。 在本教程中,你将学习到: 1. ...
本教程“Flex3.0 RIA开发详解电子教程6”应该是系列教程的一部分,着重讲解了Flex3.0的高级特性和开发实践。 在Flex3.0中,重点知识点包括: 1. **ActionScript 3.0**:ActionScript是Flex的主要编程语言,AS3.0...