- 浏览: 251943 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
topbox163:
图片显示不了
Flex 学习曲线图 -
彭利贤:
你好,想请教您一些关于flash的问题,您可以加我qq吗 59 ...
全屏flash的尺寸分析 -
jingj6:
是开源的吗?
小日本做的非常强大的一款AS3 3D引擎 -
hugh52066:
LZ牛B。
Flex 学习曲线图 -
sweed0:
a dream~~
一个让人瞠目结舌的传奇电脑高手!
Flex学习笔记_06 使用组件处理数据和交互_01常用组件(上)
Flex学习笔记_06 使用组件处理数据和交互_01常用组件(中)
1.9 Tree 一个使用XML作为Tree组件数据源的小例子
树型组件,是List 变异后的产物。在显示数据时保留了层级结构,每个元素都是一个分支或者叶子,分支包含其他分支或叶子,叶子不可再分。
结构和XML一样,所以用XML 作为Tree的数据源再适合不过了。
tree的事件:
change 在选中列改变时触发。
itemClick 点击某一列时被触发。
itemOpen 、itemClose 在节点展开和关闭时触发。
属性:
labeField 表示显示的文本所对应的XML字段,这里的值为@label ,
@ 符号表示后面的名字是XML节点的属性名,是AS3 中的XML数据的专用表达方式。
@label 指得是folder 节点中的label 属性。
change="treeChanged(event) 节点改变事件
在treeChanged 监听函数中,通过Tree 的selectedItem 属性得到当前被选中节点的XML 数据。
Tree(event.target) 强制将 event.target 转换成 Tree 类型。event.target 代表的就是Tree。
as 操作符 是类型转换符,用来将selectedItem 的值转换为XML 类型。如果类型匹配返回该类型的值,否则返回null 。
itemClick="clickItem(event)" 单击节点事件
其实itemClick 事件包括了change 事件,因此treeChanged 并不会被执行。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12"> <mx:Script> <![CDATA[ import mx.events.TreeEvent; import mx.events.ListEvent public var selectedNode:XML; // public function treeChanged(event:Event):void { selectedNode=Tree(event.target).selectedItem as XML; //res_txt.text = "选择的文件夹:"+selectedNode.@label } internal function clickItem(evt:ListEvent):void{ res_txt.text = "点击的节点:"+evt.rowIndex } internal function openItem(evt:TreeEvent):void{ res_txt.text = "带开的节点:"+evt.item } internal function closeItem(evt:TreeEvent):void{ res_txt.text = "关闭的节点:"+evt.item } ]]> </mx:Script> <mx:XMLList id="files"> <folder label="C:"> <folder label="My Documents"> <folder label="Adobe"/> </folder> <folder label="Windows"> <folder label="soft"/> <folder label="drive"/> </folder> <folder label="Image"/> <folder label="Music"/> </folder> </mx:XMLList> <mx:Tree id="myTree" width="165" height="265" labelField="@label" itemRenderer="nodeItem" showRoot="true" dataProvider="{files}" itemClick="clickItem(event)" itemOpen="openItem(event)" itemClose="closeItem(event)" change="treeChanged(event)" x="38" y="40"/> <mx:TextArea id="res_txt" x="211" y="40" height="197"/> </mx:Application>
Tree 默认采用的itemRenderer是 mx.controls.treeClasses 包中的TreeItemRenderer 类。接着我们来扩展使用它。
data 方法是 itemRenderer 获得数据的核心方法,重写这个方法,并简单修改了节点文字的颜色。
package { import mx.controls.treeClasses.*; import mx.collections.*; public class nodeItem extends TreeItemRenderer { // public function nodeItem() { super(); } //这是接收外部数据的核心方法 override public function set data(value:Object):void { super.data = value; //判断是否还有子节点,采用不同的颜色和字样 if(TreeListData(super.listData).hasChildren) { setStyle("color", 0x006699); setStyle("fontWeight", 'bold'); } else { setStyle("color", 0x000000); setStyle("fontWeight", 'normal'); } } } }
1.10 TileList 和 HorizontalList
TileList 和 容器Tile 没有联系,不过两者实现的效果基本相似,都是采用块的形式布局。TileList = Tile + List
columnCount 属性用来设定每行显示的元素个数,组件根据每行的个数自动计算出元素的位置。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Style source ="style.css"/> <mx:Model id="images"> <image> <item label="图片1" data="images/Baby01.gif"/> <item label="图片2" data="images/Baby02.gif"/> <item label="图片3" data="images/Baby03.gif"/> <item label="图片4" data="images/Baby04.gif"/> <item label="图片5" data="images/Baby01.gif"/> <item label="图片6" data="images/Baby02.gif"/> <item label="图片7" data="images/Baby03.gif"/> <item label="图片8" data="images/Baby04.gif"/> </image> </mx:Model> <mx:TileList itemRenderer="ImageItem" x="29" y="49" height="196" columnCount="3" dataProvider="{images.item}"> </mx:TileList> </mx:Application>
创建itemRenderer 来定义每个元素的界面。
data.data对应数据源中item.data
data.label对应数据源中item.label
<?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="98" height="64" horizontalAlign="center"> <mx:Image width="32" height="32" source="{data.data}"/> <mx:Button x="38" y="40" label="{data.label}"/> </mx:VBox>
1.11 文本处理
文本处理组件:
Text: 可以使用HTML不过要借助htmlText 标签或 htmlText 属性。插入HTML代码时需要使用CDATA标签。
TextArea: editable属性为true时,相当于一个支持多行的TextInput。支持HTML和内置滚动条。
TextInput 和 RichTextEditor 以及 Label
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Style> Application{ fontSize:12; backgroundGradientColors: #c0c0c0, #c0c0c0; } </mx:Style> <mx:Text x="51" y="56" width="253" height="23" text="简单文本"/> <mx:TextArea x="51" y="96" text="文本区" editable="false" width="172" height="48"/> <mx:TextInput x="51" y="171" text="输入框" displayAsPassword="true"/> <mx:Text width="253" height="96" x="51" y="226"> <mx:htmlText> <![CDATA[<font color="#0000FF">HTML文本</font> <u>支持html标签</u><img src="images/Baby01.gif"/>... ]]> </mx:htmlText> </mx:Text> </mx:Application>
1.12 一个强有力的组件 -- RichTextEditor
它实现了HTML所有功能。
是一个集成了文本处理功能的Panel组件,主要包括:TextArea 文本区 和 控制文字格式的容器。
在容器中包括了其他的组件,如 字体选择的ComboBox 、选择文本颜色的 ColorPicker 、选择文本对齐方式的ToggleButtonBar 等等。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="442" height="420"> <mx:RichTextEditor x="10" y="10" width="403" height="281" id="myRich"> </mx:RichTextEditor> <mx:TextArea id="output_txt" x="10" y="309" width="330" height="101"/> <mx:Button x="348" y="308" label="查看文本" click="output_txt.text= myRich.text"/> <mx:Button x="348" y="388" label="HTML代码" width="70" click="output_txt.text= myRich.htmlText"/> </mx:Application>
1.13 设备字体和嵌入字体的应用实例
设备字体:用户机器上所有字体都最大可能地模拟其外观,保持文本的样式不会出现较大变化。支持三种设备字体:_sans, _serif, _typewriter。
设备字体必须使用引号""包含。
嵌入字体:将字体文件编译进SWF文件中或者运行时加载到SWF文件中,供SWF文件使用。并使文本具有抗锯齿特性,边缘更平滑,同时文本可以设置透明度,还可以旋转。缺点就是增加程序的文件大小,字体小于10时就很难辨认。
<mx:Style> @font-face { src:local("Arial"); //嵌入字体local,表示本机系统中的字体 src:url("./Arial.swf"); //指定的字体文件地址,将字体房子SWF文件中,然后加载它。 fontFamily: myFont; //字体的别名,必须定义 fontStyle: normal; //可选项,默认normal 正常,italic 斜体 oblique 倾斜 fontWeight: normal; //可选项,默认normal 正常,bold 粗体 heavy 加倍粗体 flashType: true; //可选项,默认true,添加文本的额外信息,使得文本抗锯齿,平滑显示 //限制嵌入的字符。字符编码必须采用Unicode标准。 unicodeRange: U+0041-U+005A, //大写字母A-Z U+0061-U+007A, //小写字母a-z U+0030-U+0039, //数字0-9 U+002E-U+002E, //点. } </mx:Style>
定义字符的方法也可以在Flex SDK 2\frameworks\flex-config.xml中添加相关信息。
在@font-face中就可以这样使用:unicodeRange:"englishRange"
<fonts> <languages> <language-range> <lang>englishRange</lang> <range>U+0020-U+007E</range> </language-range> </languages> </fonts>
flash-unicode-table.xml列出了绝大部分语言的Unicode的字符范围。可以参考并将copy到flex-config.xml中。
评论
大哥··你的东西每次总是缺胳膊少腿的,本人又想学,不看你的我心里又不舒服,看了一半想试试,一粘贴你的代码就报错。大哥既然是教程就搞点示例代码提供下载吧··
不好意思. 因为是学习笔记, 所以是在我自己的基础上去写的. 可能有些地方让人看不懂
最近比较忙都没有更新. 现在我开始重新更新. 我会贴一些别人弄的实例
发表评论
-
如何使用Cairngorm3的导航库(Spring AS)
2011-08-29 17:39 2895一、概述 二、LIB库包配置 下载需要的LIB库 ... -
Flex学习笔记_06 使用行为对象和动画效果_ 放缩\调整大小效果
2008-09-28 16:47 38236.3.2 放缩效果和调整大 ... -
Flex学习笔记_06 使用行为对象和动画效果_模糊、发光效果
2008-09-27 22:33 31706.3.1 模糊效果和发光效 ... -
Flex学习笔记_06 使用行为对象和动画效果_认识行为对象、行为和组件
2008-08-17 01:30 22236.1 认识行为对象 6.1.1 什么是行为对象 行 ... -
Flex学习笔记_09 数据绑定_运用实例
2008-07-28 23:41 32419.3.1 实现界面的多语言切换 <?xml vers ... -
Flex学习笔记_09 数据绑定_晋级篇
2008-07-28 22:27 28719.2.1 函数和类级别的绑 ... -
Flex学习笔记_09 数据绑定_概念、使用
2008-07-21 23:32 20689.1 认识数据绑定 9.1.1 数据绑定的概念 ... -
Flex学习笔记_08 Flex的事件机制_高级应用
2008-07-16 23:11 31968.3 事件机制的高级应用 8.3.1 事件的优先级别和 ... -
Flex学习笔记_08 Flex的事件机制_事件工作流程
2008-07-15 09:05 27288.2 事件机制的工作流程 8.2.1 关于事件流 ... -
Flex学习笔记_08 Flex的事件机制_事件架构
2008-07-14 08:54 24858.1 一切从事件开始 8.1.1 关于事件 事件有 ... -
Flex学习笔记_07 ActionScript 3.0 编程基础_数据类型及其运算、程序流程
2008-07-13 19:21 46557.3 数据类型和数据运算 7.3.1 关于数据类型 ... -
Flex学习笔记_07 ActionScript 3.0 编程基础
2008-07-09 23:15 28847.1 了解 ActionScript 3.0 7.1 ... -
Flex学习笔记_06 使用组件处理数据和交互_03控件的实例应用
2008-07-06 14:26 25853. 控件的实例应用 3.1 制作一个简单的涂鸦板 ... -
Flex学习笔记_06 使用组件处理数据和交互_02导航类组件
2008-07-02 00:04 29992. 导航类组件 2.1 ToggleButtonBa ... -
Flex学习笔记_06 使用组件处理数据和交互_01常用组件(中)
2008-06-29 22:50 3968Flex学习笔记_06 使用组件处理数据和交互_01常用组件( ... -
Flex学习笔记_06 使用组件处理数据和交互_01常用组件(上)
2008-06-26 23:11 4535Flex学习笔记_06 使用组件处理数据和交互_01常用组件( ... -
Flex学习笔记_05 使用容器控制界面布局_03动态布局、导航容器、表单布局
2008-06-25 08:40 6713本文的相关文章: Flex学习笔记_05 使用容器控制界面布局 ... -
Flex学习笔记_05 使用容器控制界面布局_02窗口布局
2008-06-24 09:07 5148本文的相关文章: Flex学习笔记_05 使用容器控制界面布局 ... -
Flex学习笔记_05 使用容器控制界面布局_01管理程序的布局
2008-06-23 23:52 5654本文的相关文章: Flex学习笔记_05 使用容器控制界面布局 ... -
Flex学习笔记_04 MXML语言简介
2008-06-17 22:52 54511. MXML语法 MXML语言是专门用于Flex程序中, ...
相关推荐
本教程是作者精心编写的Flex学习资料,适合初学者入门,通过图文并茂的方式,帮助读者快速掌握Flex的基本概念和核心技能。 1. **Flex基础**:Flex提供了MXML和ActionScript两种编程方式。MXML是一种声明式语言,...
《FLEX学习笔记》 FLEX,全称为Flex Builder,是由Adobe公司开发的一款基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有交互性、响应性和丰富用户体验的Web应用。FLEX的...
本压缩包“Flex学习笔记.rar”显然是一份针对初学者的教程资料,旨在帮助新接触Flex的开发者快速上手。 在“FlexBeginner.pdf”这份文档中,你可以期待找到以下关键知识点: 1. **Flex概述**:介绍Flex技术的基本...
### Flex新手教程_入门级学习笔记 #### ActionScript核心概念 **ActionScript(简称AS)** 是一种面向对象的编程语言,主要用于开发Flex应用程序。掌握AS的基础知识对于学习Flex至关重要。 ##### 类和对象 (Class...
这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...
本篇“Flex学习笔记”将带你深入理解Flex的核心概念、架构以及如何使用它来构建高效的应用程序。 一、Flex基础 1. MXML与ActionScript:Flex主要使用MXML(Markup Language for Flex)和ActionScript两种语言进行...
本笔记将深入探讨Flex的基本概念、架构、组件、布局管理器以及事件处理机制,帮助初学者全面理解并掌握Flex开发。 1. **Flex简介**:Flex是一种开放源代码的框架,主要用于创建交互式的、基于Web的用户界面。它允许...
Flex学习笔记概述 Flex是一种由Adobe开发的企业级富互联网应用(RIA)的表示层解决方案,其主要目的是提供高度交互和动态的用户体验。Flex的核心在于它的编程语言MXML和ActionScript(AS),这两种语言结合在一起,...
### Flex学习笔记:ActionScript与Flex开发入门 #### 1. ActionScript核心概念 ##### 1.1 类和对象(Class and Object) 类是对象的模板,定义了一组具有相同特性和行为的对象的共同属性和方法。在ActionScript中...
最后,通过预定义的可视化组件构建用户界面,使用styles和skins自定义外观,编写事件处理和脚本控制应用程序行为,连接数据并使用服务进行通信。最后,编译并运行应用程序。 AS3语言基础是Flex开发的核心,以下是...
Flex ActionScript 学习笔记是关于使用Adobe Flex技术并结合ActionScript 3.0进行开发的知识总结。ActionScript 3.0是随着Flash CS3一起推出的一种强大的编程语言,相较于之前的ActionScript版本,它有着显著的提升...
掌握这些生命周期方法对于优化性能和处理用户交互至关重要。例如,`createChildren()` 方法用于创建组件的子元素,`measure()` 方法计算组件大小,`layout()` 处理组件布局,`updateDisplayList()` 更新可视表示,而...
本学习笔记和案例旨在帮助开发者掌握Away3D 4.1与Flex4.7结合下的3D开发技巧,通过深入理解基本的3D缓动动画,开发者能够创建出更具互动性和吸引力的3D应用程序。同时,通过实践案例,可以更好地掌握3D对象动画的...
《Flex企业应用开发实战》的学习笔记主要探讨了Flex在企业应用开发中的基础知识,包括MXML语言、客户端状态保持、客户端MVC模式以及数据绑定技术。 2.1 MXML语言是Flex应用开发的核心部分,它是一种XML标记语言,与...
本文档是针对Flex和Java初学者的学习笔记,涵盖了Flex中的基础组件、文本处理、样式设计、行为对象以及动画效果。 一、Flex基础组件 1. Button:按钮组件,可以设置文字和图标,图标通过`icon="@Embed('图片路径')...
在Flex项目中,我们可以使用Flex的HTTPService或WebService组件来与Hessian服务进行交互。通过配置服务URL和方法名,我们可以轻松地调用远端Hessian服务的方法,并处理返回的结果。 "swf"文件"HessianFlexClient....