2.13.自定义弹出式窗口边框

评论(0)浏览(78)分类:flash/flex/fcs/AIR
2.13.自定义弹出式窗口边框2.13.1. 问题我想要自定义弹出窗口的边框来显示窗口。2.13.2. 解决办法创建一个PanleSkin 类的子类,覆盖updateDisplayList 方法来绘画调出箭头。设定这个子类为弹出窗口的borderSkin 风格。2.13.3. 讨论这个技术是基于Section 2.12CustomPopUp 组件修改的。定制你的窗口边框,这次设一个自定义类CustomPanelSkin 到borderSkin 风格。+展开 -XML..

2.12.弹出窗口的显示和位置

评论(0)浏览(93)分类:flash/flex/fcs/AIR
2.12.弹出窗口的显示和位置2.12.1. 问题我想要在使用弹出窗口时给用户显示附加信息。2.12.2. 解决办法通过用户交互,使用PopUpManager 来创建TitleWindow 组件实例2.12.3. 讨论Flex 框架包含了一个PopUpManager 类,它包含了若干静态方法来管理穿件,放置,移除Flex应用程序的顶级窗口。如下代码所示:+展开-XMLmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"l..

2.11.使用Calendar控件

评论(0)浏览(110)分类:flash/flex/fcs/AIR
2.11.使用Calendar控件2.11.1. 问题你想要允许用户在一个日历样式的控件中选择日期。2.11.2. 解决办法使用DateField 控件或DataChooser 控件让用户选择日期。2.11.3. 讨论Flex 框架提供了两个控件用来实现日历样式的功能:DateField 和DateChooser 控件。DateField控件提供了一个TextInput 控件和一个点击可以打开日历的日历图标。DateChooser,则不同,它提供了一个可..

2.10.显示一个通知窗口

评论(0)浏览(74)分类:flash/flex/fcs/AIR
2.10.显示一个通知窗口2.10.1. 问题我需要向用户显示一个模式消息并提供可供用户选择的操作选项2.10.2. 解决办法使用Alert 控件来显示信息。2.10.3. 讨论Alert 控件提供了一个带按钮的模式窗口,用户可以点击来回答对话框的消息。Alert 控件不能MXML 创建。你必须使用ActionScript 才能实现,例如:+展开-XMLmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"l..

2.9.为菜单类控件创建事件处理函数

评论(0)浏览(93)分类:flash/flex/fcs/AIR
2.9.为菜单类控件创建事件处理函数2.9.1. 问题我想让菜单对用户的交互作出响应。2.9.2. 解决办法给MenuBar 控件的itemClick 事件添加事件监听器。2.9.3. 讨论为MenuBar 控件的itemClick 事件指定一个监听处理函数handleMenuClick 来处理菜单栏交互点击。当用户选则一个菜单项的时候itemClick 事件就会被触发。监听函数会接收到作为参数传来的MenuEvent 对象。MenuEvent 对象包含了..

2.8.动态填充菜单

评论(0)浏览(126)分类:flash/flex/fcs/AIR
2.8.动态填充菜单2.8.1. 问题动态的来填充和修改一个菜单栏。2.8.2. 解决办法使用ActionScript 为MenuBar 控件的dataProvider 属性分配一个Collection 对象(例如ArrayCollection 或者XMLListCollection)。2.8.3. 讨论Flex3 中的MenuBar 控件支持运行时菜单栏动态创建。本节会创建一个带有MenuBar 控件的程序,在程序初始化的时候使用一个ArrayCollection 来填充..

2.7.提供菜单数据

评论(0)浏览(84)分类:flash/flex/fcs/AIR
2.7.提供菜单数据2.7.1. 问题我需要通过数据提供器来创建一个菜单栏2.7.2. 解决办法为mxml 中定已的MenuBar 控件的dataProvider 属性分配一个Collection 对象(例如ArrayCollection 或者XMLListCollection)。2.7.3. 讨论在MXMl中使用数据来填充MenuBar控件的最简单办法,就是在控件内部创建一个XMLList的实例。+展开-XMLmx:Applicationxmlns:mx="http://www.ado..

2.6.设置控件的labelFunction

评论(0)浏览(94)分类:flash/flex/fcs/AIR
2.6.设置控件的labelFunction2.6.1. 问题我需要组合一个数据提供器中不同的字段来自定义ComboBox 组件的显示文本。2.6.2. 解决办法使用ComboBox 组件的labelFunction 属性来指定定义显示文本的自定义函数。2.6.3. 讨论默认情况下,在Flex 中基于List 的控件都是使用dataProvider 中的元素的label 属性来做显示。在一些情况中,无论如何,dataProvideer 中都没有label 属性存..

2.5.设置组件的标签索引

评论(0)浏览(70)分类:flash/flex/fcs/AIR
2.5.设置组件的标签索引2.5.1. 问题我需要改变Flex 应用程序中默认的组件索引顺序2.5.2. 解决办法使用Flex 组件的tabIndex 属性来指定组件的特定组件的索引顺序。2.5.3. 讨论默认情况,所有可被Tab 访问的Flex 组件(指可以通过Tab 键顺序访问的组件)都拥有基于屏幕布局的索引顺序。在如下例子中,TextInput 组件的tabIndex 属性会被设定为从左到右的Tab 索引顺序:+展..

2.4.使用SWFLoader载入SWF

评论(0)浏览(81)分类:flash/flex/fcs/AIR
2.4.使用SWFLoader载入SWF2.4.1. 问题我想要运行时载入外部的可能由Flex3 或者FlashCS3 创建的SWF 文件到当前的Flex 应用程序。2.4.2. 解决办法使用SWFLoader 组件在运行时载入外部SWF 文件。2.4.3. 讨论使用SWFLoader 组件在运行时载入外部SWF 文件。下列例子载入了外部的SWF 到TabNavigator 的一个子元件Canvans 容器中。SWFLoader 的source 属性引用了需要被运行时载入..

2.3.使用ColorPicker设置Canvas颜色

评论(0)浏览(111)分类:flash/flex/fcs/AIR
2.3.使用ColorPicker设置Canvas颜色2.3.1. 问题我想要让用户使用色彩选取器来修改一个组件的颜色。2.3.2. 解决办法为用户提供一个用来选取颜色的调色板。并且使用ColorPicker 控件的change 事件来设定Canvas 的背景颜色。2.3.3. 讨论让用户使用一个调色板。创建一个程序,使用ColorPicker 控件来改变Canvas 控件的backgroundColro 属性(背景色)。ColorPicker 控件提供给用户一种从..

2.2.创建一组状态按钮

评论(0)浏览(133)分类:flash/flex/fcs/AIR
2.2.创建一组状态按钮2.2.1. 问题我需要提供一系列按钮供用户选择。2.2.2. 解决办法使用ToggleButtonBar 组件以及用来创建一组按钮的ArrayCollection。2.2.3. 讨论创建一个带ToggleButtonBar 的应用程序来放置创建的一列按钮。ToggleButtonBar 定义了一套用来维护按钮选择状态的纵向或者横向按钮组. 具体方法如下:+展开-XMLmx:Applicationxmlns:mx="http://www.adobe..

2.1.监听按钮点击

评论(0)浏览(139)分类:flash/flex/fcs/AIR
2.1.监听按钮点击2.1.1. 问题我想执行一段任务以便对用户的交互作出响应,比如当用户点击一个按钮时在控制台输出名称列表。2.1.2. 解决办法使用mx:Button标签的click 事件属性来设定一个click 事件处理程序。也可以在ActionScript 中通过Button 实例的addEventListener 方法来添加click 事件的监听器来达到同样的效果。2.1.3. 讨论如下的代码展示了如何在MXML 中..

第二章.控件与菜单

评论(0)浏览(66)分类:flash/flex/fcs/AIR
第二章.控件与菜单2.1.监听按钮点击2.2.创建一组状态按钮2.3.使用ColorPicker设置Canvas颜色2.4.使用SWFLoader载入SWF2.5.设置组件的标签索引2.6.设置控件的labelFunction2.7.提供菜单数据2.8.动态填充菜单2.9.为菜单类控件创建事件处理函数2.10.显示一个通知窗口2.11.使用Calendar控件2.12.弹出窗口的显示和位置2.13.自定义弹出式窗口边框2.14.处理focusIn和focu..

1.18.接口的定义和实现

评论(0)浏览(116)分类:flash/flex/fcs/AIR
1.18.接口的定义和实现1.18.1.问题我想创建一个接口,并创建一个组件实现这个接口。1.18.2.解决办法创建一个ActionScript文件,申明此文件为一个接口,定义此接口需要的任意方法。要实现此接口,在定义类时使用implements关键字。1.18.3.讨论接口是一个很强大的工具,它描述一个契约,所有实现它的类都必须完全按照接口所定义的方法包括作用域,名称,参数和返回值保持..

1.17.检测对象数据类型

评论(0)浏览(70)分类:flash/flex/fcs/AIR
1.17.检测对象数据类型1.17.1.问题我想检测下传入到方法的对象是什么类型。1.17.2.解决办法使用is操作符检测对象类型或者是父类对象的type属性。1.17.3.讨论要检测一个对象的类型,ActionScript提供了is操作符,检测对象类型并返回true或false。如果对象与测试目标一致或是其子类则返回true,比如,因为Canvas对象继承自UIComponent,is操作符返回true。如果IComponen..

1.16.定义方法参数

评论(0)浏览(118)分类:flash/flex/fcs/AIR
1.16.定义方法参数1.16.1.问题我想定义一个方法,其参数有默认值或null值,以便调用方法时不必每次都进行传值。1.16.2.解决办法在方法申明时直接对方法参数进行赋值,赋予默认值或null值。1.16.3.讨论要想为方法定义一个或多个可选参数,最简单的办法就是为参数对象设置为默认值或null。ActionScript基本类型String, Number, int, 和Boolean不能设置为null值,不过..

1.15.监听键盘事件

评论(0)浏览(94)分类:flash/flex/fcs/AIR
1.15.监听键盘事件1.15.1.问题我想监听用户的按键,检测哪个键被按下并处理相应事件。1.15.2.解决办法为应用程序的stage或组件的keyDown事件添加监听器,读取KeyboardEvents的keyCode属性。1.15.3.讨论使用keyDown事件处理器监听KeyboardEvent,这些类都扩展自UIComponent。KeyboardEvent类定义了一个keyCode属性用于存储用户按下的键码,例如:+展开-XMLmx:HBoxx..

1.14.使用自定义事件以及事件数据传递

评论(0)浏览(109)分类:flash/flex/fcs/AIR
1.14.使用自定义事件以及事件数据传递1.14.1.问题我想使用自定义事件类发出事件以及数据。1.14.2.解决办法继承flash.events.Event创建类,创建与事件数据相关的属性。1.14.3.讨论有时候我们希望发送事件时也附带数据对象以便监听者不用访问发出事件的对象也能访问数据。渲染器或深度嵌入对象通过发出事件通过多个组件到达监听器并发送数据而不需要监听组件去寻找对象及访问其组件。作..

1.13.组件属性绑定

评论(0)浏览(97)分类:flash/flex/fcs/AIR
1.13.组件属性绑定1.13.1.问题我创建的组件中想让其属性是可绑定的,可绑定到其他组件上。1.13.2.解决办法创建getter和setter方法,用metadata标签把这些方法标记为Bindable,元数据标签里还包含当属性被设置时其方法所发出的事件名称。1.13.3.讨论当属性值发生改变时,在属性上添加Bindable元数据标签,发出相应事件,任何对象都可以被定义为可绑定属性。最佳方法..

1.12.使用代码隐藏模式分离MXML和ActionScript

评论(0)浏览(101)分类:flash/flex/fcs/AIR
1.12.使用代码隐藏模式分离MXML和ActionScript1.12.1.问题我想使用代码隐藏模式将ActionScript和MXML代码分离开。1.12.2.解决办法在ActionScript创建继承自Flex库的类,添加属性和方法提供相应的功能,然后创建MXML文件并继承你创建的那个类。1.12.3.讨论如果你熟悉ASP.NET开发,一定听说过“代码隐藏”,同样地,如果你熟悉脚本语言(Ruby on Rails, JavaServer Pages (JSP) 开发, PHP,等等)..

1.11.使用事件冒泡机制

评论(0)浏览(97)分类:flash/flex/fcs/AIR
1.11.使用事件冒泡机制1.11.1.问题我想监听从子组件传递到父组件的所有事件而不必创建一连串事件监听器。1.11.2.解决办法使用Flash Player的事件冒泡机制监听从子组件传递来的事件。1.11.3.讨论我们需要通过几个类来了解冒泡事件,很多类型的事件都可以冒泡:mouse-down事件,click事件,keyboard 事件。术语“向上冒泡”指的是事件通过其自身的处理方式从显示列表传递..

1.10.在ActionScript中创建组件

评论(0)浏览(71)分类:flash/flex/fcs/AIR
1.10.在ActionScript中创建组件1.10.1.问题我想用ActionScript而不是MXML去创建组件。1.10.2.解决办法创建ActionScript文件并继承一个Flex库组件。1.10.3.讨论除了在MXML中创建组件为,你还可以在ActionScript中创建它们而根本不需要MXML。操作有点不同,只需要几步。首先确定你的类正确定义包名,下面的例子中,组件所在目录是以应用程序级目录开始,然后是oreilly/cookbook/..

1.9.在ActionScript中设置变量的作用域

评论(0)浏览(103)分类:flash/flex/fcs/AIR
1.9.在ActionScript中设置变量的作用域1.9.1.问题我需要有些变量可公开访问但有些防止被外部访问。1.9.2.解决办法使用ActionScript的作用域修饰符。1.9.3.讨论无论是在ActionScript或在MXML文件中,变量都有各种作用域。组件中的私有变量和方法只可被其自身所访问,其他组件都无法访问。这样的定义很有用,这些数据只能有一个组件可以修改。当你设计一个复杂类时,最好是把那些外部组..

1.8.定义数组和对象

评论(0)浏览(103)分类:flash/flex/fcs/AIR
1.8.定义数组和对象1.8.1.问题您需要定义数组对象或哈希表— 样式对象来存储值或其他对象.1.8.2.解决办法使用ActionScript语法之构造函数调用创建一个新的对象或数组,或在MXML中定义它们1.8.3.讨论数组和对象是最常见的存储数据的两种数据类型,可通过ActionScript或在MXML中定义。要想在MXML中定义数据,是使用mx:Array标签包裹数组的所有数据项:+展开-XMLmx:Ar..

1.7.设置子节点属性

评论(0)浏览(70)分类:flash/flex/fcs/AIR
1.7.设置子节点属性1.7.1.问题我想通过MXML中的script标签内容的某个方法来设置子节点属性。1.7.2.解决办法通过id属性查找子节点组件,并使用id属性调用方法。1.7.3.讨论人们很容易把组件的脚本代码部分与mxml部分分割开来看,但实际上它们是一体的,例如下面的例子:+展开-XMLmx:HBoxxmlns:mx="http://www.adobe.com/2006/mxml"width="400"height="300"mx:Script!..

1.6.在MXML中添加事件监听器

评论(0)浏览(114)分类:flash/flex/fcs/AIR
1.6.在MXML中添加事件监听器1.6.1.问题我想在MXML中添加事件监听器来监听MXML文件中的子对象所发出的事件。1.6.2.解决办法传递一个方法名给组件的event标签并发送一个event对象(可选)。1.6.3.讨论当一个行为发生时,Flex组件便会发出相应事件信号,比如用户点击一个按钮, 选择列表框的某一项或者数据读取。要监听这些被广播出去的事件,最简单的方法就是添加一个函数引用..

1.5.在Flex Builder外部编译Flex项目

评论(0)浏览(128)分类:flash/flex/fcs/AIR
1.5.在Flex Builder外部编译Flex项目1.5.1.问题我不想在Flex Builder里进行编译项目1.5.2.解决办法使用终端或命令行窗口调用MXML编译器1.5.3.讨论虽然Flex Builder是一个功能强大的Flex开发工具,但是这不是创建Flex程序所必需的,你仍然可以用Flex编译器(mxmlc)来编译Flex代码,Flex编译器是免费的,在Adobe网站上可免费下载。在Windows下的命令行或Mac OS X的终端里调用MXML编译器..

1.4.在Flex Builder中设置MXML编译器选项

评论(0)浏览(117)分类:flash/flex/fcs/AIR
1.4.在Flex Builder中设置MXML编译器选项1.4.1.问题我想设置MXML编译器选项1.4.2.解决办法在项目属性对话框中设置编译器参数1.4.3.讨论MXML编译器,就是mxmlc,它把ActionScript和MXML文件编译为SWF文件以供Flash Player运行。当你在Flex Builder中运行或调试Flex程序时,MXML编译器会被调用,文件作为编译器参数被传递过去,当你调式时会把调试版的SWF作为参数传递给MXML编译器。例如你..

1.3.创建ActionScript项目

评论(0)浏览(97)分类:flash/flex/fcs/AIR
1.3.创建ActionScript项目1.3.1.问题我想创建ActionScript项目1.3.2.解决办法通过新建向导并选择ActionScript Project.1.3.3.讨论ActionScript项目不同于Flex项目,因为它根本不包含Flex框架,ActionScript项目完全由基于Flash代码的核心ActionScript类所组成,它不需要访问Flex框架中的任何组件。要创建ActionScript项目,选择File New ActionScript Project (Figure 1-..