25.5节. 编译和部署使用RSL的Flex应用程序

评论(0)浏览(122)分类:flash/flex/fcs/AIR
25.5节. 编译和部署使用RSL的Flex应用程序25.5.1. 问题我需要部署一个使用了一个或多个运行时共享库(RSL)的Flex程序。25.5.2. 解决办法在应用程序编译后使用external-library-path指定RSL的位置。25.5.3. 讨论当Flex程序初始化时,它需要知道所有需要的运行时共享库的位置。external-library-path包含了这些信息;把它传递给编译器,这样Flash Player就能在实例化组件或类之前马上加载..

25.4节. 在FlexAntTasks中使用compc和mxmlc任务

评论(0)浏览(103)分类:flash/flex/fcs/AIR
25.4节. 在FlexAntTasks中使用compc和mxmlc任务25.4.1. 问题我想使用包含在Flex Ant Tasks中的mxmlc或compc任务来简化应用程序的编译和使用Ant。25.4.2. 解决办法把Flex Ant tasks安装到你的Ant库中,然后使用mxmlc或compc标签,并把要传递给编译器的参数都放到标签中。25.4.3. 讨论Flex Ant tasks通过提供给开发者预置的常用任务使用,大大的简化了使用Ant编译Flex应用程序的过程。mxmlc或co..

25.3.安装FlexAntTasks

评论(0)浏览(66)分类:flash/flex/fcs/AIR
25.3.安装FlexAntTasks25.3.1. 问题我想使用Flex 3 SDK中的Flex Ant。25.3.2. 解决办法拷贝flex_ant/lib/flexTasks.jar到Ant的库目录({ANT_root}/lib)。25.3.3. 讨论为了确保Ant总是能够访问由Flex 3 SDK提供的Flex Ant Tasks库中的所有任务,你必须把任务拷贝到Ant安装目录下的lib目录下。如果你不把文件拷到lib目录下,那么当你制作项目XML文件时必须使用Ant的-lib参..

25.2.使用组件编译器

评论(0)浏览(141)分类:flash/flex/fcs/AIR
25.2.使用组件编译器25.2.1. 问题我想把一个Flex组件编译到SWC文件中,以便用于运行时共享库(RSL)。25.2.2. 解决办法使用组件编译器(compc),然后使用命令行参数或者把一个XML配置文件作为加载配置参数传递给compc编译。25.2.3. 讨论使用下面的语法调用组件编译器compc:-compc -source-path . -include-classes oreilly.cookbook.foo -output example.swc下面是..

25.1.在Flex Builder外使用Trace语句

评论(0)浏览(74)分类:flash/flex/fcs/AIR
25.1.在Flex Builder外使用Trace语句25.1.1. 问题我想借助trace语句帮助调试程序,但是我没有Flex Builder 3。25.1.2. 解决办法下载并使用一个开源的trace工具。25.1.3. 讨论自从Adobe开放Flex 3de库和编译器后,开发者有了更多查看trace语句输出结果的选择。已经不再限制在必须使用Flash IDE或Flex Builder IDE了;现在你可以使用下面几种工具。比如,X ray(John Grden开发)在Fl..

第二十五章. 编译与调试

评论(0)浏览(188)分类:flash/flex/fcs/AIR
第二十五章. 编译与调试  编译Flex程序最常用的方法是使用Flex Builder或者是在命令行调用MXML编译器(mxmlc),不过,还有不少其他的工具也可以完成编译程序、移动文件或者调用应用程序的任务。比如,make、Ant、及Rake,你可以仅仅使用一个命令就能调用它们完成整个编译和部署的任务。  Flex中的调试是借助于Debug版的Flash Player完成的,因为debug版的Flash Play..

24.10.生成自动测试集

评论(0)浏览(175)分类:flash/flex/fcs/AIR
24.10.生成自动测试集24.10.1. 问题我想自动生成包含所有测试用例的测试集。24.10.2. 解决办法使用Antennae TestSuite-generation工具。24.10.3. 讨论TestCase必须包含进TestSuite才可以运行。创建新的TestCase并添加到TestSuite已经成为一种体力活。为了代替这种手工添加每个TestCase到TestSuite,你可以让TestSuite自动生成。开源的Antennae项目包含一个工具自动检..

24.9.安装和配置Antennae

评论(0)浏览(73)分类:flash/flex/fcs/AIR
24.9.安装和配置Antennae24.9.1. 问题我想要自动构建和测试Flex应用程序。24.9.2. 解决办法下载,解压缩开源的Antennae模板并为指定系统进行配置。24.9.3. 讨论Antennae是一个专用于自动构建和测试Flex应用程序的开源项目。它使用Ant和Java提供跨平台工具来编译Flex库和Flex应用程序,生成FlexUnit测试集,并以自动化方式运行FlexUnit测试。Antennae也定义了一个框架用于..

24.8.用FlexUnit测试可视化组件

评论(0)浏览(118)分类:flash/flex/fcs/AIR
24.8.用FlexUnit测试可视化组件24.8.1. 问题我需要测试可视化组件24.8.2. 解决办法展示将组件放在可视体系中然后测试它。24.8.3. 讨论有人认为可视组件的测试已偏离了单元测试的目的,因为它们很难被独立出来进行测试,以便能控制测试条件。测试功能丰富的Flex框架组件是很复杂的,比如怎样确定某个方法是否被正确调用。样式和父容器也会影响一个组件的行为。因此,你最好是用..

24.7.处理测试用例事件

评论(0)浏览(92)分类:flash/flex/fcs/AIR
24.7.处理测试用例事件24.7.1. 问题我需要等待TestCase中的某个事件。24.7.2. 解决办法使用addAsync FlexUnit方法24.7.3. 讨论TestCase的测试行为经常会出现等待异步事件问题。如果TestCase方法只涉及同步事件,比如当改变属性时property change事件立即触发,不需要特殊的处理。但是当涉及到异步事件时你就要特别小心了。一般需要在测试中监听异步事件, 如URLLoad 是..

24.6.测试用例之间共享测试数据

评论(0)浏览(100)分类:flash/flex/fcs/AIR
24.6.测试用例之间共享测试数据24.6.1. 问题我想在多个测试用例之间共享数据,包括简单的或复杂的测试数据实例。24.6.2. 解决办法创建能生成所需测试数据实例的工厂类。24.6.3. 讨论一般的单元测试都有多个测试用例,彼此之间需共享相同或类似的测试数据。这些数据可能很简单,比如是一个表示地址的object,也可能会很复杂,比如是以特定方式建立的相关实体的命令。不是通过剪..

24.5.在测试前后运行代码

评论(0)浏览(94)分类:flash/flex/fcs/AIR
24.5.在测试前后运行代码24.5.1. 问题我需要在每个测试用例测试前或测试后运行特定的代码。24.5.2. 解决办法重写TestCase类的setUp和tearDown方法。24.5.3. 讨论默认情况下,每个TestCase中的测试方法都会在自己的TestCase实例中运行。如果多个测试方法需要同一个系统状态或数据,你可以使用setUp方法统一进行设置而不用在每个测试开始前显式调用某个设置方法。同理,如..

24.4.添加测试用例到测试集合

评论(0)浏览(93)分类:flash/flex/fcs/AIR
24.4.添加测试用例到测试集合24.4.1. 问题我想添加测试用例到现有的测试集合中。24.4.2. 解决办法使用TestSuite的addTestSuite方法24.4.3. 讨论使用addTestSuite方法将测试用例添加到测试集合中,该方法接受一个TestCase类引用作为参数。在后台FlexUnit使用反射找到所有以test开头的方法并执行它们。下面的例子更新自24.2节的createTestSuite方法,添加RegExpTest到测试集中..

24.3.创建FlexUnit测试用例

评论(0)浏览(95)分类:flash/flex/fcs/AIR
24.3.创建FlexUnit测试用例24.3.1. 问题我需要创建FlexUnit TestCase类实例测试代码。24.3.2. 解决办法创建TestCase子类,包含一个或多个以test开头的方法。24.3.3. 讨论当创建继承自TestCase的ActionScript类,一般的命名方法是在类名后面添加Test作为后缀。例如,如果被测试类叫RegExp,则TestCase类将被命名为RegExpTest。另外一般把TestCase类和被测试类放在同一个包中..

24.2.运行FlexUnit单元测试

评论(0)浏览(74)分类:flash/flex/fcs/AIR
24.2.运行FlexUnit单元测试24.2.1. 问题我需要创建应用程序运行FlexUnit 测试并显示测试结果。24.2.2. 解决办法使用TestSuite 实例和TestRunnerBase 组件运行测试。24.2.3. 讨论TestRunnerBase 是默认的包含FlexUnit 框架的图形化测试运行器。想要用TestRunnerBase 测试创建的应用程序,编辑MXML 文件,加入如下内容:+展开-XMLmx:Applicationxmlns:mx="http://www.adobe...

24.1.创建应用FlexUnit框架的应用程序

评论(0)浏览(89)分类:flash/flex/fcs/AIR
24.1.创建应用FlexUnit框架的应用程序24.1.1. 问题我使用FlexUnit 框架类为应用程序创建测试并运行之。24.1.2. 解决办法下载和解压缩FlexUnit,把flexunit.swc 文件引入到应用程序编译路径中。24.1.3. 讨论FlexUnit 框架包括一个图形化的测试运行器和用于创建自定义测试的基类。你可以从http://code.google.com/p/as3flexunitlib/下载到,确认下载的是最新的版本。然后解压缩ZIP 文件..

第二十四章. FlexUnit单元测试

评论(0)浏览(188)分类:flash/flex/fcs/AIR
第二十四章. FlexUnit单元测试  随着Flex 应用程序变得越来越庞大和负责,单元测试已逐渐被广大Flex 开发者所接受和欢迎。所谓单元测试,就是一个确保项目中新增条件或改变不会引入更多的BUGs 或不会修改预期行为,使得大型团队能够不引入bugs 的情况下协调工作,确认小的独立的部分程序向特定的方法返回预期结果。这使得bugs 和异常能被迅速定位,因为正确的单元测试将能测..

23.17.创建系统托盘图标

评论(0)浏览(108)分类:flash/flex/fcs/AIR
23.17.创建系统托盘图标23.17.1.问题我想让应用程序运行在后台,不需要主界面。23.17.2.解决办法在mx:WindowedApplication根标签和描述文件里设置应用程序的可见性为false,使用DockIcon和SystemTrayIcon类,添加自定义程序图标。23.17.3.讨论是可以创建没有主界面的应用程序,且运行在后台。这些应用程序出现在系统托盘或停靠栏里。Mac OS X 和Windows操作系统都支持应..

23.16.检测用户是否在线

评论(0)浏览(75)分类:flash/flex/fcs/AIR
23.16.检测用户是否在线23.16.1.问题我想检测用户是否在线。23.16.2.解决办法设置NativeApplication的idleThreshold属性,监听userIdle和userPresent事件。23.16.3.讨论检测用户在线的原理是基于键盘和鼠标的活动状态,离线是指键盘和鼠标在一段时间内不处于活动状态。你可以设置一个时间期限判断用户是否在线。下面的例子使用NativeApplication实例检测用户在线:+展开..

23.15.检测和监控网络连接

评论(0)浏览(143)分类:flash/flex/fcs/AIR
23.15.检测和监控网络连接23.15.1.问题我想检测Internet连接和监视器是否可用。23.15.2.解决办法使用AIR monitoring API的ServiceMonitor, SocketMonitor, 和URLMonitor类。23.15.3.讨论Adobe AIR包含的类可检测网络资源是否可用,还有当连接改变时实时通知用户。这些类使得开发人员能够创建支持偶尔连接(occasional connectivity)的应用程序:当资源可用时,通过联机服务..

23.14.本地SQL数据库

评论(0)浏览(113)分类:flash/flex/fcs/AIR
23.14.本地SQL数据库23.14.1.问题我想让应用程序在本地保存和接收数据。23.14.2.解决办法在用户硬盘上创建数据库文件,执行SQL语句。23.14.3.讨论Adobe AIR 运行时引入了SQL数据库引擎,使我们可以为创建本地数据库存储信息。一个数据库被保存为一个文件,且没有限定存放于特定的目录下,这样可允许任何应用程序都可访问数据库中的数据。AIR的SQL引擎可创建关系型数..

23.13.在ActionScript和JavaScript之间跨脚本操作

评论(0)浏览(100)分类:flash/flex/fcs/AIR
23.13.在ActionScript和JavaScript之间跨脚本操作23.13.1.问题我想访问HTML元素节点,访问JavaScript变量和函数,操作CSS 样式。23.13.2.解决办法监听complete事件,使用mx:HTML控件的domWindow属性访问HTML DOM。23.13.3.讨论HTMLLoader类支持访问HTML文档的DOM对象。你可以访问HTML的节点元素,也可以和页面里的javascript交互,访问其变量和方法,也可以在JavaScript中调用ActionScript方法。..

23.12.添加HTML内容

评论(0)浏览(123)分类:flash/flex/fcs/AIR
23.12.添加HTML内容23.12.1.问题我想在应用程序中显示HTML内容。23.12.2.解决办法使用mx:HTML控件载入并显示HTML内容。23.12.3.讨论Adobe AIR 运行时支持在基于SWF的应用程序中渲染HTML。渲染引擎是基于WebKit技术构建,功能和基于WebKit引擎的浏览器一样。比如Safari。这个引擎的核心就是AIR HTML API中的flash.html.HTMLLoader类,它继承自flash.display.Sprite类..

23.11.与操作系统剪贴板交互

评论(0)浏览(99)分类:flash/flex/fcs/AIR
23.11.与操作系统剪贴板交互23.11.1.问题我想与操作系统剪贴板进行数据交换。23.11.2.解决办法使用Clipboard类的静态generalClipboard属性。23.11.3.讨论除了通过拖拽操作和系统剪贴板交换数据外,还可通过flash.desktop.Clipboard类的静态属性generalClipboard与剪贴板交换数据。AIR程序支持的数据交换格式有:位图数据,标准文本数据,HTML, 和URL格式。当数据可用时,可..

23.10.使用本地拖拽(Drag-and-Drop)API

评论(0)浏览(121)分类:flash/flex/fcs/AIR
23.10.使用本地拖拽(Drag-and-Drop)API23.10.1.问题我想在应用程序内外拖动数据.23.10.2.解决办法添加数据到剪贴板,使用NativeDragManager类管理拖拽操作。23.10.3.讨论通过本地的drag-and-drop API文件系统和AIR应用程序之间可以进行数据传输。当一个拖拽姿势启动后,指定格式的数据被添加到剪贴板并传递给NativeDragManager的doDrag方法。你可以注册事件监听器监听NativeDragManag..

23.9.使用File System控件

评论(0)浏览(165)分类:flash/flex/fcs/AIR
23.9.使用File System控件23.9.1.问题我想添加控件用于浏览和显示文件系统特定目录下的内容。23.9.2.解决办法使用SDK的文件系统控件。23.9.3.讨论Flex 3 SDK的AIR API提供了很多控件方便浏览电脑文件系统的目录。这些控件只可用在AIR程序中,是由Framework的基于列表的组件组合而成。如Tree, List, 和DataGrid。虽然这些文件系统控件的外观和交互和Flex组件复本是一样的,..

23.8.浏览本地文件

评论(0)浏览(100)分类:flash/flex/fcs/AIR
23.8.浏览本地文件23.8.1.问题我想使用打开对话框和保存对话框用于打开和保存文件。23.8.2.解决办法使用flash.filesystem.File类的browse开头的那些方法。23.8.3.讨论File类提供了一个对话框窗口用于打开一个或多个文件。使用File.browseForOpen方法选择一个文件时select 事件被触发, 使用File.browseForOpenMultiple 方法选择多个文件时selecteMutiple事件被触发..

23.7.使用加密的本地存储区

评论(0)浏览(134)分类:flash/flex/fcs/AIR
23.7.使用加密的本地存储区23.7.1.问题我想把数据存储到用户硬盘上且不可被其他程序所读写。23.7.2.解决办法使用AIR 程序中加密的本地存储区以加密存储信息。23.7.3.讨论当一个AIR程序被安装后,一个加密的本地存储区被创建,用于存储一些需要保密的信息。使用Windows的Data Protection API (DPAPI) 和Mac OS X的密匙链for AIR applications on Windows and Keychain for ..

23.6.对象序列化

评论(0)浏览(81)分类:flash/flex/fcs/AIR
23.6.对象序列化23.6.1.问题我想对自定义对象进行序列化并保存到硬盘驱动器的文件中。23.6.2.解决办法通过class-alias注册自定义类,使用ActionScript Message Format (AMF) 编码序列化对象,并使用FileStream.writeObject方法把对象存储到文件上。23.6.3.讨论使用AIR文件系统API,你可以把经过AMF编码序列化过的对象写入文件流缓冲区中。ActionScript语言中大多..

23.5.读写文件

评论(0)浏览(77)分类:flash/flex/fcs/AIR
23.5.读写文件23.5.1.问题我想在文件系统上创建,访问和写文件。23.5.2.解决办法使用AIR的file system API的File, FileStream, 和FileMode类。23.5.3.讨论一个File对象是一个指针,代表一个文件或一个目录。要读写文件到硬盘驱动器,你可以使用FileStream把File对象放入一个缓冲区,通过FileStream类的同步和异步方法读取和写入。当使用的同步的FileStream.op..