`

flex3.0新特性(1)----本地资源的操作,如加载PDF文件,对本地数据库的操作

    博客分类:
  • Flex
阅读更多

Flex 3.0中最大的变化在于新增AIR工程。AIR应用程序是一种桌面应用程序。因为要支持对本地资源的操作,所以Flex 3.0中新增许多对本地资源的操作,如本地文件、PDF文件等。另外,AIR应用程序支持版本升级、集成网页、使用Ajax技术等。本章将介绍Flex 3.0这些新特性的具体应用。

23.1  加载PDF文件
在Flex 3.0中的AIR工程中新增HTMLControl类和HTMLPDFCapability类。通过这两个类可实现加载PDF文件,丰富了AIR应用程序的效果和功能。本小节将为读者介绍如何在AIR工程中加载PDF文件。

23.1.1  加载PDF文件前的准备
加载PDF文件需要有两个条件:第一是必须为AIR工程,第二是系统已安装Adobe Reader 8.1以上版本。前者是因为Flex 3.0中只有在AIR工程中可引用HTMLControl类和HTMLPDFCapability类。究其深层原因是Adobe公司只允许桌面应用程序(AIR)访问本地资源。其他Web工程出于安全性考虑,不可直接访问本地资源。

23.1.2  使用HTMLControl类加载PDF文件
HTMLControl类是AIR中新增的类,用于加载PDF。使用HTMLControl类加载PDF文件的语法如下所示。

HTMLControl变量.load(URLRequest变量);

以下代码使用HTMLControl类加载“123.pdf”文件。

var t:URLRequest=new URLRequest("123.pdf");

var hc:HTMLControl=new HTMLControl();

hc.load(t);

HTMLControl类中只有一个属性pdfCapability。此属性存储了PDF文件与Adobe Reader版本间的关系。在HTMLControl类的load方法执行后,自动得到版本信息。

23.1.3  使用HTMLPDFCapability类检测Adobe Reader版本
HTMLPDFCapability类定义了加载的PDF文件与Adobe Reader版本间的关系,使用状态字符串表示,如“ERROR_INSTALLED_READER_NOT_FOUND”。HTMLPDFCapability类的状态字符串如表23-1所示。

表23-1  HTMLPDFCapability类的状态字符串

状 态 名
说    明

HTMLPDFCapability.STATUS_OK
系统中已安装Adobe Reader 8.1以上版本

HTMLPDFCapability.ERROR_INSTALLED_READER_NOT_FOUND
系统中未安装Adobe Reader

HTMLPDFCapability.ERROR_INSTALLED_READER_TOO_OLD
系统中Adobe Reader版本太旧

HTMLPDFCapability.ERROR_PREFERRED_READER_TOO_OLD
当前有旧的Adobe Reader版本正在读取PDF


使用HTMLControl类的pdfCapability属性和HTMLPDFCapability类的状态字符串就能确定PDF文件与Adobe Reader版本间的关系。

以下代码表示系统中已安装Adobe Reader 8.1以上版本,可正常加载的PDF文件。

if(ht.pdfCapability==HTMLPDFCapability.STATUS_OK)

{

    Alert.show("加载PDF正常");

}

23.1.4  加载PDF文件实例
加载PDF文件的步骤如下所示。

新建AIR工程。

确定系统中已安装Adobe Reader 8.1以上版本。

编写MXML文件。

MXML程序中主要处理是在初始化应用程序时加载PDF文件,并将结果添加到<mx:HTML>组件。以下代码加载PDF文件“1.pdf”并显示于<mx:HTML>组件上。

<?xml version="1.0" encoding="utf-8"?>

<mx:WindowedApplicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"creationComplete="initApp()">

    <mx:Script>

        <![CDATA[

            import flash.html.HTMLPDFCapability;    //引用HTMLPDFCapability类

            import flash.html.HTMLControl;          //引用HTMLControl类

            import mx.controls.Alert;               //引用Alert类

            //应用程序初始化函数

            private function initApp():void

            {

                //Adobe Reader 8.1版本以上已安装时,加载pdf

                if(HTMLControl.pdfCapability==HTMLPDFCapability.STATUS_OK)

                {

                    var request:URLRequest = new URLRequest("1.pdf");//定义URLRequest实例

                    var pdf:HTMLControl = new HTMLControl();        //定义HTML

Control实例

                    pdf.height = 800;               //设置pdf高度

                    pdf.width = 600;                //设置pdf宽度  

                    pdf.load(request);              //加载pdf

                    container.addChild(pdf);        //将pdf添加到HTML组件上

                }

                else

                    Alert.show("pdf不能显示,请安装Adobe Reader 8.1以上版本");

            }

        ]]>

    </mx:Script>

    <mx:HTML id="container"/>

</mx:WindowedApplication>

(33)       “if(HTMLControl.pdfCapability==HTMLPDFCapability.STATUS_OK)”语句用以判断系统中是否安装Adobe Reader 8.1以上版本。若未安装,则加载PDF文件不能完成。

(34)       PDF文件只能显示于<mx:HTML>组件中。“container.addChild(pdf);”语句表示在<mx:HTML>组件中添加PDF文件数据。

按下Ctrl+F11键,编译运行程序。运行效果如图23-1所示。



图23-1  加载PDF文件效果

23.2  使用本地SQL数据库
SQL数据库是指可使用标准的SQL语句进行操作的数据库。本地SQL数据库是指操作系统支持的SQL数据库,如“.db”格式的数据库。AIR应用程序中新增了一些类(在“flash.data.*”包中),用以支持对本地SQL数据库的操作。对SQL数据库的基本操作包括Select(读取数据)、Insert(插入数据)、Update(修改数据)、Delete(删除数据)。本章将介绍对SQL数据库操作的基本语句及如何使用新增类操作数据库。

23.2.1  使用Select语句读取数据
Select语句用以读取表中的数据,其语法如下所示。

Select 列名1[as 别名1],列名2[as 别名2],…,列名n[as 别名n] from表名 where 条件

(35)       列名是指表中的列的名称。

(36)       用户可为列名取别名。此项默认与列名相同。

(37)       条件是指对数据的约束。例如,取表中考试成绩不及格的学生信息。

以下代码从学生成绩表“StudentScore”中读取不及格学生的学号、姓名、班级、成绩。

Select studentId as 学号,studentName as 姓名,studentClass as 班级,score as 成绩 from StudentScore where score<60

若读取表中的全部数据列,可使用“*”符。

若上述“StudentScore”表中只有学号、姓名、班级、成绩四列,读取数据的代码可如下所示。

Select * from StudentScore where score<60

23.2.2  使用Insert语句添加数据
Insert语句用以向表中添加数据,其语法如下所示。

Insert into 表名(列名1,列名2,...,列名n) values (数值1,数值2,…数值n)

(38)       列名必须是表中存在的列的名称。

(39)       数值顺序对应列名顺序,如数值1赋值给列名1。

以下代码向学生成绩表“StudentScore”中添加一条数据。

Insert into StudentScore(studentId,studentName,score) values (‘08’,’小明’,77)

对于字符串数据使用单引号封闭,数值不需要单引号封闭。

上述语法可选择性地添加列数据。例如,表中有四列,但只添加其中三列的数据。若对全部列添加数据可省略列名,其语法如下所示。

Insert into 表名 values (数值1,数值2,…数值n)

数值顺序必须严格遵循表中列的顺序。数值个数必须与列的个数相同。

以下代码向学生成绩表“StudentScore”中添加一条完整数据。

Insert into StudentScore values (‘08’,’小明’,’高三5班’,77)

23.2.3  使用Update语句修改数据
Update语句用以修改表中的数据,其语法如下所示。

Update 表名 set 列名1=修改值1,列名2=修改值2,…,列名n=修改值n where 条件

Update可修改表中的单条记录或多条记录。使用条件语句来控制修改范围。

以下代码使用Update语句将成绩59分修改为60分(及格)。

Update StudentScore set score=60 where score=59

需要注意的是,SQL语句中判断相等的操作符为“=”,而不是“==”。赋值语句使用Set子句或Select子句(Select语句的另外一种用法)。

若用户只想修改单条记录,可定义更加严格的条件。以下代码将小明同学的成绩59分提高到60分。

Update StudentScore set score=60 where score=59 and studentName=’小明’

23.2.4  使用Delete语句删除数据
Delete语句用以删除表中的数据,其语法如下所示。

Delete from表名 where 条件

Delete语句可删除单条记录或多条记录,方法是控制条件范围。以下代码使用Delete语句删除“高三5班”学生信息。

Delete from StudentScore where studentClass=’高三5班’

以下代码删除学号为“08”的学生信息。

Delete from StudentScore where studentId=’08’

23.2.5  使用SQLConnection类连接数据库
SQLConnection类用于连接数据库。对于要操作的数据库都应新建SQLConnection类实例。其语法如下所示。

var SQLConnection变量: SQLConnection=new SQLConnection();

以下代码定义了一个SQLConnection实例conn。

var conn:SQLConnection=new SQLConnection();

使用SQLConnection类的“open”方法打开数据库连接。其语法如下所示。

SQLConnection变量.open(File变量);

以下代码使用open方法打开本地SQL数据库“School.db”。

var conn:SQLConnection=new SQLConnection();

var dbFile:File =File.applicationResourceDirectory.resolve("School.db");

conn.open(dbFile);

(40)       “File.applicationResourceDirectory”语句表示工程资源路径,即“bin”文件夹路径。

(41)       resolve方法用以扩展文件路径,可看作是“\”符。

23.2.6  使用SQLStatement类执行SQL语句
SQLStatement类用于执行SQL语句,是操作SQL数据库的重要类。使用SQLStatement类的步骤如下。

定义SQLStatement类实例,其语法如下所示。

var SQLStatement变量:SQLStatement=new SQLStatement();

以下代码定义了一个SQLStatement类实例sqlcmd。

var sqlcmd:SQLStatement=new SQLStatement();

指向其使用的数据库。SQLStatement实例必须指明应用的数据库,即指向SQLConnection实例。SQLStatement实例指向数据库的语法如下所示。

SQLStatement变量.sqlConnection=SQLConnection变量;

sqlConnection属性类型为SQLConnection,表示指向的数据库实例。以下代码中SQLStatement实例stmt指向数据库实例conn。

var conn:SQLConnection=new Connection();

var dbFile:File = File.applicationResourceDirectory.resolve("School.db");

conn.open(dbFile);

var stmt:SQLStatement=new SQLStatement();

stmt.sqlConnection=conn;

为SQLStatement实例定义SQL语句。其语法如下所示。

SQLStatement变量.text="SQL语句";

text属性类型为String,用于定义SQL语句。以下代码为SQLStatement实例stmt定义SQL语句“select * from table”。

var stmt:SQLStatement=new SQLStatement();

stmt.text="select * from table";

执行SQLStatement实例。执行SQLStatement实例的结果是执行SQL语句。使用SQLStatement类的excute方法开始执行SQL语句。其语法如下所示。

SQLStatement变量.excute();

以下代码使用excute方法开始执行SQL语句“select * from table”。

var stmt:SQLStatement=new SQLStatement();

stmt.text="select * from table";

stmt.excute();

为SQLStatement实例添加监听。执行SQLStatement实例后的状态有很多,常用的是正常返回结果和运行异常两种。需要对两个状态都添加监听。为SQLStatement实例添加监听的语法如下所示。

SQLStatement变量.addEventListener(监听状态,处理函数);

以下代码为“SQLEvent.RESULT”(正常返回结果)和“SQLErrorEvent.ERROR”(运行异常)状态添加监听。

stmt.addEventListener(SQLEvent.RESULT,showDataResult);

stmt.addEventListener(SQLErrorEvent.ERROR, errorHandle);

(42)       SQLEvent.RESULT状态表示SQLStatement实例执行成功并返回结果。

(43)       SQLErrorEvent.ERROR状态表示SQLStatement实例执行异常。

获取返回数据集。执行有返回数据的SQL语句,数据集存储于SQLStatement实例中。使用SQLStatement类的getResult方法可得到数据集。其语法如下所示。

SQLStatement变量.getResult().data;

以下代码使用getResult方法获得SQL语句“select * from table”的执行结果。

var stmt:SQLStatement=new SQLStatement();

stmt.text="select * from table";

stmt.excute();                                              //执行SQL语句

stmt.addEventListener(SQLEvent.RESULT,showDataResult);



function showDataResult(e:SQLEvent):void

{

    var t:Array=stmt.getResult().data as Array;         //获得结果集

}

23.2.7  操作本地SQL数据库实例
本小节以实例为读者讲解如何使用SQL语句操作数据库,其步骤如下所示。

设计数据库“School”。“School”数据库中只有一张表“Notes”,用以存储通知信息。“Notes”表的列设计如表23-2所示。

表23-2 “Notes”表的设计说明

列    名
类    型
说    明
是否为主码

noteId
integer
通知id


title
text
标题
 

content
text
内容
 

publisher
text
发布者
 


以下代码是创建表的SQL语句。

CREATE TABLE IF NOT EXISTS Notes

(

    noteId INTEGER PRIMARY KEY AUTOINCREMENT,

    title TEXT,

    content TEXT,

    publisher TEXT,

)

(44)       此SQL语句在应用程序中定义并执行。

(45)       “IF NOT EXISTS Notes”语句表示创建表“Notes”前先判断是否已存在此表。若已存在“Notes”表,不执行此创建语句。

(46)       “noteId INTEGER PRIMARY KEY AUTOINCREMENT”表示“noteId”列为interger型(整型)、主码、新增记录时自动增1。

新建AIR工程。

设计应用程序的外观模型。

此实例包括一个DataGrid组件,用以绑定数据。一些输入框及按钮,为数据插入数据库作准备。以下代码是外观模型生成的MXML代码。

<mx:Panel >

    <mx:DataGrid id="dg" verticalScrollPolicy="auto">

        <mx:columns>

            <mx:DataGridColumn headerText="编号" dataField="noteId"/>

            <mx:DataGridColumn headerText="标题" dataField="title"/>

            <mx:DataGridColumn headerText="内容" dataField="content"/>

            <mx:DataGridColumn headerText="发布者" dataField="publisher"/>

        </mx:columns>

    </mx:DataGrid>

    <mx:Canvas height="259" width="401">   

        <mx:Label text="标题" x="10" y="12"/>

        <mx:TextInput x="69" y="10" width="296" id="txtTitle"/>

        <mx:Label text="内容" x="10" y="51"/>

        <mx:TextArea x="69" y="50" width="296" height="110" id="txtContent"/>

        <mx:Label text="发布者" x="10" y="171"/>

        <mx:TextInput  width="92" id="txtPublisher" x="69" y="169"/>

        <mx:Button  label="确定" id="btnOk" click="insertDataHandle();" x="69" y="218"/>

    </mx:Canvas>

</mx:Panel>

设计模式下的外观模型效果如图23-2所示。



图23-2  操作SQL数据库实例的外观效果

连接“School”数据库。本实例中在工程“bin”文件夹下创建“School.db”数据库,并使用SQLConnection类连接数据库。以下代码创建“School.db”数据库,并使用SQLConnection类连接。

private var conn:SQLConnection = new SQLConnection();   //定义SQLConnection实例

private var dbFile:File = File.applicationResourceDirectory.resolve ("School.db");                                              //定义数据库文件路径



conn.open(dbFile);                                      //打开数据库文件

File类中的resolve方法用以定位文件。若指定路径下的文件不存在将自动创建。

创建“Notes”表。在连接数据库“School.db”后,创建“Notes”表。方法是使用SQL语句创建。以下代码使用SQLStatement类执行SQL语句,从而创建“Notes”表。

private var createStmt:SQLStatement=new SQLStatement();//定义SQLStatement实例

//数据库文件打开后的处理函数

private function openHandler(e:SQLEvent):void

{

    createStmt.sqlConnection = conn;                    //定义语句连接的数据库

    //sql语句创建表Notes

    var sql:String ="CREATE TABLE IF NOT EXISTS Notes ("

        +"noteId INTEGER PRIMARY KEY AUTOINCREMENT,"

        +"title TEXT,"

        +"content TEXT,"

        +"publisher TEXT"

        +")";

    createStmt.text = sql;

    createStmt.execute();                               //执行sql语句

}

获得数据集并显示于DataGrid组件中。在执行完创建表的SQL语句后,使用Select语句获取“Notes”表中的全部数据,并绑定至DataGrid组件上。以下代码使用SQLStatement实例createStmt执行Select语句,从而获得“Notes”表中的数据,并显示于DataGrid组件。

//创建完表或已存在表时显示表中的数据

private function createTableResult(e:SQLEvent):void

{

    createStmt.sqlConnection = conn;                    //定义语句连接的数据库

    createStmt.text ="select * from Notes";

    //添加对SQLEvent.RESULT状态的监听

    createStmt.addEventListener(SQLEvent.RESULT,showDataResult);

    createStmt.execute();                                   //执行sql语句

}

//显示数据处理函数

private function showDataResult(event:SQLEvent):void

{

    dg.dataProvider=createStmt.getResult().data;            //绑定数据集

}

向数据库中插入数据。当单击“确定”按钮时,使用Insert语句将数据插入到数据库中。以下代码使用SQLStatement实例stmt执行Insert语句,从而向“Notes”表中插入新数据。

//插入数据处理函数

private function insertDataHandle():void

{

    var stmt:SQLStatement=new SQLStatement();

    stmt.sqlConnection = conn;                          //定义语句连接的数据库

    stmt.text ="insert into Notes(title,content,publisher) values('"

            +txtTitle.text+"','"

            +txtContent.text+"','"

            +txtPublisher.text+"')";

    stmt.execute();                                     //执行sql语句

}

完成剩余代码。应用程序剩余的代码包括初始化函数initApp、运行异常处理函数errorHandle、引用不同类等。

以下是应用程序的完整代码。

<?xml version="1.0" encoding="utf-8"?>

<mx:WindowedApplication width="600"

    fontSize="13" height="500"

xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete ="initApp()">

    <mx:Script>

        <![CDATA[

            import flash.data.SQLConnection;        //引用SQLConnection类

            import flash.data.SQLStatement;         //引用SQLStatement类

            import flash.events.SQLErrorEvent;      //引用SQLErrorEvent类

            import flash.events.SQLEvent;           //引用SQLEvent类

            import flash.filesystem.File;           //引用File类

            import mx.controls.Alert;               //引用Alert类

            private var conn:SQLConnection = new SQLConnection();                                                                   //定义SQLConnection实例

private var createStmt:SQLStatement=new SQLStatement();                                                                         //定义SQLStatement实例

            //定义数据库文件路径

            private var dbFile:File = File.applicationResourceDirectory. resolve("School.db");

            //应用程序初始化处理函数

            public function initApp():void

            {

                conn.addEventListener(SQLEvent.OPEN, openHandler);                                                             //监听SQLEvent.OPEN状态

                //监听SQLErrorEvent.ERROR状态

                conn.addEventListener(SQLErrorEvent.ERROR, errorHandle);

                conn.open(dbFile);                  //打开数据库文件

            }

            //数据库文件打开后的处理函数

            private function openHandler(e:SQLEvent):void

            {

                createStmt.sqlConnection = conn;    //定义语句连接的数据库

                //sql语句创建表Notes

                var sql:String ="CREATE TABLE IF NOT EXISTS Notes ("

                    + "noteId INTEGER PRIMARY KEY AUTOINCREMENT,"

                    + "title TEXT,"

                    + "content TEXT,"

                    + "publisher TEXT"

                    + ")";

                createStmt.text = sql;

                //添加对SQLEvent.RESULT状态的监听

                   createStmt.addEventListener(SQLEvent.RESULT,createTableResult);

                //监听SQLErrorEvent.ERROR状态

                   createStmt.addEventListener(SQLErrorEvent.ERROR, errorHandle);

                createStmt.execute();               //执行sql语句

            }

            //创建完表或已存在表时显示表中的数据

            private function createTableResult(e:SQLEvent):void

            {

                createStmt.sqlConnection = conn;    //定义语句连接的数据库

                createStmt.text ="select * from Notes";

                //添加对SQLEvent.RESULT状态的监听

                   createStmt.addEventListener(SQLEvent.RESULT,showDataResult);

                //监听SQLErrorEvent.ERROR状态

                   createStmt.addEventListener(SQLErrorEvent.ERROR, errorHandle);

                createStmt.execute();                           //执行sql语句

            }

            //显示数据处理函数

            private function showDataResult(event:SQLEvent):void

            {

                dg.dataProvider=createStmt.getResult().data;    //绑定数据集

            }

            //插入数据处理函数

            private function insertDataHandle():void

            {

                var stmt:SQLStatement=new SQLStatement();

                stmt.sqlConnection = conn;              //定义语句连接的数据库

                stmt.text ="insert into Notes(title,content,publisher) values('"

                    +txtTitle.text+"','"

                    +txtContent.text+"','"

                    +txtPublisher.text+"')";

                //添加对SQLEvent.RESULT状态的监听

                createStmt.addEventListener(SQLEvent.RESULT,showDataResult);

                //监听SQLErrorEvent.ERROR状态

                stmt.addEventListener(SQLErrorEvent.ERROR, errorHandle);

                stmt.execute();                         //执行sql语句

            }

            //对数据库操作出错时的处理函数

            private function errorHandle(event:SQLErrorEvent):void

            {

                Alert.show("Details:", event.error.message);

            }

        ]]>

    </mx:Script>

    <mx:Panel >

        <!--DataGrid组件,用以显示数据-->

        <mx:DataGrid id="dg" verticalScrollPolicy="auto">

            <mx:columns>

                <mx:DataGridColumn headerText="编号" dataField="noteId"/>

                <mx:DataGridColumn headerText="标题" dataField="title"/>

                <mx:DataGridColumn headerText="内容" dataField="content"/>

                <mx:DataGridColumn headerText="发布者" dataField="publisher"/>

            </mx:columns>

        </mx:DataGrid>

        <mx:Canvas height="259" width="401">   

            <mx:Label text="标题" x="10" y="12"/>

            <mx:TextInput x="69" y="10" width="296" id="txtTitle"/>                                                                 <!--“标题”输入框-->

            <mx:Label text="内容" x="10" y="51"/>

            <!--“内容”输入框-->

              <mx:TextArea x="69" y="50" width="296" height="110" id="txtContent"/>

            <mx:Label text="发布者" x="10" y="171"/>

            <mx:TextInput  width="92" id="txtPublisher" x="69" y="169"/>                                                            <!--"发布者"输入框-->

            <!--按钮组件,用以添加数据-->

            <mx:Button  label="确定" id="btnOk" click="insertDataHandle();" x="69" y="218"/>

        </mx:Canvas>

    </mx:Panel>

</mx:WindowedApplication>


分享到:
评论

相关推荐

    精通Flex 3.0--基于ActionScript 3.0实现源码

    9. **学习资源**:为了精通Flex 3.0,可以参考官方文档、在线教程、书籍和社区论坛,如Adobe Developer Connection、Flextras等,这些资源提供了丰富的学习材料和实例代码。 10. **源码分析**:压缩包中的"源码...

    精通Flex3.0 CHM电子书

    Flex 3 Flex 2 技巧 Flex编译器支持条件编译 精通Flex 3.0――14.1 LCDS介绍 ...精通Flex 3.0――4.7.1 加载服务端数据 精通Flex 3.0――4.7.2 基于Socket的连接 精通Flex 3.0――4.8 使用事件处理类

    flex3.0源代码-1

    本资源包含的是Flex 3.0的源代码,对于深入理解和学习Flex技术具有很高的价值。 在学习Flex 3.0源代码时,有几个关键知识点值得我们关注: 1. **ActionScript 3.0**:Flex 3.0基于ActionScript 3.0,这是一种面向...

    《ACTIONSCRIPT 3.0 编程指南》-----Flex编程必备

    《ACTIONSCRIPT 3.0 编程指南》-----Flex编程必备,值得一看的必备资料

    精通Flex 3.0——基于ActionScript 3.0实现_源代码

    《精通Flex 3.0——基于ActionScript 3.0实现》一书源代码。 Flex 3.0 ActionScript 3.0源代码 Flex 3.0源代码。 --------------------------- 第1篇 Flex技术概述 第1章 Flex概述 3 1.1 Flex简介 3 1.2 Flex...

    flex3.0资源1

    本资源包中的六个可执行文件(01.exe至06.exe)可能是Flex 3.0开发环境或相关工具的安装程序,用于在用户的计算机上部署Flex开发环境。 Flex 3.0 知识点详解: 1. **ActionScript 3.0**:Flex 3.0 引入了...

    FLASH-FLEX3.0开发教程中文版(例子源码)

    《FLASH-FLEX3.0开发教程中文版(例子源码)》是一份全面介绍Adobe Flex 3.0技术的教程,特别适合初学者和有一定基础的开发者深入学习。Flex是基于ActionScript 3.0的开放源代码框架,主要用于构建富互联网应用程序...

    完全自学flex3.0随书源码

    这个"完全自学flex3.0随书源码"的资源包含了学习Flex 3.0过程中可能需要的所有源代码示例,对于初学者来说是极有价值的参考资料。 1. **Flex SDK与Flex Builder** Flex SDK是免费的开发工具,包含编译器、库和...

    flex3.0学习指南

    Flex SDK包含了开发Flex应用所需的所有工具,包括编译器、Flex Builder IDE的支持文件以及ActionScript 3.0库。开发者可以使用免费的SDK,配合文本编辑器进行开发,或者选择购买Adobe Flex Builder来获得更强大的...

    flex3.0资源2

    Flex 3.0的资源管理是其重要特性之一。资源可以包括字符串、图像、样式和其他可重用的UI元素。这些资源通常被集中存储在库或者外部文件中,以便在多个组件或模块间共享。通过使用资源管理器,开发者可以方便地导入、...

    精通flex3.0 精通 Flex3.0 LCDS ActionScript 事件

    在Flex 3.0中,LCDS(LiveCycle Data Services)是关键的数据服务层,它扩展了Flex对后端数据的访问能力,而ActionScript则是Flex中的主要编程语言,用于实现业务逻辑和交互控制。 1. **Flex 3.0基础** - **MXML**...

    Flex3.0

    1. **Spark组件架构**:Flex 3.0引入了全新的Spark组件架构,这是对原有的MX组件的重大改进。Spark组件更加轻量级,性能更优,同时提供了更好的自定义和扩展性。它们遵循更加严格的MXML和CSS设计原则,使得UI设计...

    FLEX 3.0程序开发技术详解(下).pdf

    FLEX 3.0程序开发技术详解(下).pdf

    Flex 3.0 快速入门教程

    Flex3.0学习版快速入门提高版,简单轻松,操作容易。学习简单,很清楚地描述了怎么从零凯斯学习Flex的开发。

    FLEX3.0最新相关技术手册

    Flex 3.0还支持开发桌面应用程序,通过Adobe AIR(Adobe Integrated Runtime),开发者可以创建具有Flash特性的桌面应用,同时利用本地文件系统、操作系统功能和离线存储。 总之,"FLEX3.0最新相关技术手册"涵盖了...

    ArcGIS API for Flex 3.0

    1. In Adobe Flash Builder, create a new Flex project (File -&gt; New -&gt; Flex project). 2. Copy all the contents of the ArcGIS_Flex\samples\src folder to src folder of the Flex project created above. 3....

    flex3.0源码-3

    1. **UI组件**:Flex提供了丰富的用户界面组件,如Button、Label、TextArea等。源码解析将展示这些组件是如何被创建和管理的,以及如何通过MXML和ActionScript进行自定义。 2. **数据绑定**:Flex的数据绑定机制...

    ArcGIS Viewer For Flex 3.0 源码

    《ArcGIS Viewer for Flex 3.0 源码解析》 ArcGIS Viewer for Flex 3.0 是Esri公司开发的一款基于Adobe Flex技术的Web GIS应用框架,它提供了丰富的地图展示、地理分析和信息共享功能,使得开发者能够快速构建交互...

Global site tag (gtag.js) - Google Analytics