`
yoshiyan
  • 浏览: 46470 次
社区版块
存档分类
最新评论

Flex中的数据类型

    博客分类:
  • Flex
阅读更多
学习笔记,欢迎拍砖。

XML和XMLList有何区别?
XML不允许相同的层次出现同样的tag。而XMLList可以。如:
var xml:XML = new XML("<Student></Student><Student></Student>");

上边的写法对XML来说是不允许的,而XMLList却支持。
var list:XMLList = new XMLList("<Student></Student><Student></Student>");


如何判断XML对象是否拥有某个属性?
if ("@attr" in node) { ... }
参考链接:http://martijnvanbeek.net/weblog/40/testing_the_existance_of_an_attribute_in_xml_with_as3.html

如何读取XML文件?
MXML:
<fx:XML id="textContent" source="assets/markup.xml"/>


AS:
var loader:URLLoader = new URLLoader();  
loader.addEventListener(Event.COMPLETE, handleConfigFileLoadComplete);  
loader.load(new URLRequest("assets/Config.xml")); 

private function handleConfigFileLoadComplete(event:Event):void
{
    m_bannerRotators = XML(event.target.data);
    var filterList:XMLListCollection 
	= new XMLListCollection(m_bannerRotators.BannerRotator.(@name == this.name).elements().@name);
}


AS中的E4X支持“与”和“或”这些逻辑操作符吗?
支持
示例代码如下:
var filterResult:XMLListCollection 
						= new XMLListCollection(config.BannerRotator.(@name == "gamePS3" || @name == "gameWII").Filter.(@name == "all").elements());


Flex的Collections的介绍
http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7b6b.html

ArrayList和ArrayCollection有何区别?
ArrayList不能筛选和过滤数组,而ArrayCollection可以。


如何为XMLListCollection排序?
示例代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
            import mx.collections.SortField;
            import mx.collections.Sort;

            private function sortByField(value:String,
                        isNumeric:Boolean = false,
                        isDescending:Boolean = false):Boolean {
                var sortField:SortField = new SortField(value);
                sortField.numeric = isNumeric;
                sortField.descending = isDescending;
                var sort:Sort = new Sort();
                sort.fields = [sortField];
                xmlListColl.sort = sort;
                return xmlListColl.refresh();
            }
        ]]>
    </mx:Script>

    <mx:XMLListCollection id="xmlListColl">
        <mx:source>
            <mx:XMLList>
                <group name="Esthetique" value="2997" cost="0.52" />
                <group name="xx" value="652" cost="0.47" />
                <group name="xyt" value="652" cost="0.54" />
                <group name="sss" value="652" cost="0.23" />
                <group name="ffsdfsd" value="652" cost="0.82" />
            </mx:XMLList>
        </mx:source>
        <mx:sort>
            <mx:Sort>
                <mx:SortField name="@cost"
                        numeric="true"
                        descending="true" />
            </mx:Sort>
        </mx:sort>
    </mx:XMLListCollection>

    <mx:Panel>
        <mx:DataGrid dataProvider="{xmlListColl}" width="100%">
            <mx:columns>
                <mx:DataGridColumn dataField="@name" />
                <mx:DataGridColumn dataField="@cost" />
                <mx:DataGridColumn dataField="@value" />
            </mx:columns>
        </mx:DataGrid>
        <mx:ControlBar>
            <mx:Button label="Sort by @name"
                    click="sortByField('@name')" />
            <mx:Button label="Sort by @cost"
                    click="sortByField('@cost', true, true);" />
            <mx:Button label="Sort by @value"
                    click="sortByField('@value', true, true);" />
        </mx:ControlBar>
    </mx:Panel>

</mx:Application>


参考链接:http://blog.flexexamples.com/2007/08/05/sorting-an-arraycollection-using-the-sortfield-and-sort-classes/


Array和Vector.<>有何区别?
1.Vector的性能更高。
2.Vector是type safety的。
3.Vector需要FP10,而有20%的用户仍在使用FP9。
参考链接:http://stackoverflow.com/questions/1130309/vector-vs-array

除数据类型限制之外,Vector 类还具有其他一些限制,从而有别于 Array 类:

    * Vector 是一种密集数组。与 Array 不同,Vector 必须在每个索引中包含一个值(或 null),而前者可以只在索引 0 和 7 中包含值(即使位置 1 到 6 中不存在任何值)。
    * Vector 可以具有固定长度,这意味着其所包含的元素数量不可更改。
    * 对 Vector 的元素的访问需要接受范围检查。绝对不能从大于最后一个元素 (length - 1) 的索引中读取值。绝对不能对超过当前最后一个索引一个以上的索引设置值(也就是说,只能在现有索引或索引 [length] 中设置值)。

由于 Vector 具有这些限制,因此 Vector 相对于所有元素均为单个类的实例的 Array 实例有三个主要优点:

    * 性能:使用 Vector 实例时的数组元素进行访问和迭代的速度比使用 Array 时的速度要快很多。
    * 类型安全性:在严格模式下,编译器可以识别数据类型错误。数据类型错误的例子包括将数据类型错误的值分配给 Vector 或从 Vector 中读取值时要求错误的数据类型。但请注意,当使用 push() 方法或 unshift() 方法向 Vector 添加值时,在编译时不会检查参数的数据类型,而是在运行时检查。
    * 可靠性:相对于 Array,运行时范围检查(或定长检查)极大地提高了可靠性。

AS里定义XML类型的变量,不需要双引号:
public var dataXML1:XML =
<records>
	<record month="Jan" balanceAndheri="10000000.00" />
	<record month="Feb" balanceAndheri="56200000.00"/>
	<record month="Mar" balanceAndheri="62000000.00" "/>
</records>


如何创建ArrayList的变量实例,并为其赋值?
For MXML:
<s:ArrayList id="mapAC">
	<fx:Object label="Jungle" imagePath="assets/Jungle.jpg"/>
	<fx:Object label="Swamp"  imagePath="assets/Swamp.jpg"/>
</s:ArrayList>


For AS:
var mapAC:ArrayList = new ArrayList([
     {label: "Jungle", imagePath="assets/Jungle.jpg"}, 
     {label: "Swamp",  imagePath="assets/Swamp.jpg"}
]);


如何从Array里删除一个元素?
使用Array的splice函数,该函数也可以用于插入。
实例代码如下:
var flexArray:Array=[“Adobe”,”Flex”];
flexArray.splice(1,0,”Maromedia”);    //删除从索引位置1开始的0个元素,添加”Maromedia”到实例中
trace(flexArray);                       //输出“Adobe,Macromeida,Flex”
flexArray.splice(1,1);                  //删除从索引位置1开始的1个元素
trace(flexArray);                       //输出“Adobe,Flex”


如可清空Dictionary?
private function getFilter(propertyFilter:Dictionary):void
{
   for (var obj:Object in propertyFilter)
   {
      delete propertyFilter[obj];
   }
   //....
}


如何清空Vector?
调用它的splice函数。需要特别小心的是:别和slice函数混淆了!
分享到:
评论

相关推荐

    flex中tree的数据源是xml

    flex中经常需要xml格式的文件。通过后台asp.net的处理可以将数据库中读取的文件转化为xml格式。这是再传递给前端的flex中的tree控件作为数据源。

    使用 Flex 4.5 访问数据

    为数据服务操作配置数据类型 测试服务操作 管理对服务器中的数据的访问 Flash Builder 为客户端应用程序生成代码 部署访问数据服务的应用程序 第 3 章: 为以数据为中心的应用程序实现服务 Action Message Format ...

    将Flex DataGrid数据导出到Excel中

    将flex中datagrid组件中数据导出到excel表格中。思路很简单,利用as将datagrid中的数据解析出来,传到后台java服务端处理,即可保存为excel文件。

    java 与 flex 数据转换

    java 与 flex 数据转换,java数据类型对应flex的数据类型

    精通Flex3.0 CHM电子书

    精通Flex 3.0――14.1.2 ActionScript与Java数据类型的转换 精通Flex 3.0――14.1.3 LCDS的内容结构 精通Flex 3.0――14.2 一个最基本的LCDS应用 精通Flex 3.0――14.3 通过Remoting访问服务端的应用 精通Flex 3.0―...

    flex4视频教程-常用数据类型

    flex4常用数据类型的视频指导,推荐一看

    Flex数据传输与交互

    连接到 Internet 的计算机中超过 98% 装有 Flash Player,这是一个企业级客户端运行时,它的高级矢量图形能处理要求最高、数据密集型应用程序,同时达到桌面应用程序的执行速度。通过利用 AIR,Flex 应用程序可以...

    flex 第一步全部源码 实例源码

    内容包括:Flex简介、Flex的安装和开发环境的建立、MXML 语法简介、使用容器控制界面布局、使用组件处理数据和交互、使用行为对象和动画效果、ActionScript 3.0编程知识、Flex的事件机制、数据绑定、组件的使用、...

    flex 第一步 源码 使用组件处理数据和交互

    内容包括:F1ex简介、Flex的安装和开发环境的建立、MXML语法简介、使用容器控制界面布局、使用组件处理数据和交互、使用行为对象和动画效果、ActionScript3.0编程知识、Flex的事件机制、数据绑定、组件的使用、F1ex...

    FLex连接数据

    在本教程中,您将从数据库检索数据并在 DataGrid 中显示它。Flex 应用程序不会直接连接到远程数据库。而是使用以您的首选网络语言(PHP、ColdFusion、Java 或任何其他服务器端网络技术)编写的数据服务连接到远程...

    Flex与ActionScript3程序开发

    Flex与ActionScript3程序...相信读者在学习完本书后,在使用Flex进行组件开发和数据处理、使用Flex高效制作皮肤、将Flex与 Flash紧密结合、使用Flex与服务器端语言通信、对Flex应用进行优化等方面都会有深刻的理解和掌握

    [Flex与ActionScript.3程序开发].陈爽,付凯.扫描版

    相信读者在学习完《Flex与ActionScript 3程序开发》后,在使用Flex进行组件开发和数据处理、使用Flex高效制作皮肤、将Flex与Flash紧密结合、使用Flex与服务器端语言通信、对Flex应用进行优化等方面都会有深刻的理解...

    《Flex与ActionScript程序开发》[PDF]

    相信读者在学习完本书后,在使用Flex进行组件开发和数据处理、使用Flex高效制作皮肤、将Flex与 Flash紧密结合、使用Flex与服务器端语言通信、对Flex应用进行优化等方面都会有深刻的理解和掌握。  本书的所有实例...

    Flex教程 ppt格式 简单实用

    使用列表和表格.ppt第11章 使用组合框、步进器.ppt第12章 使用拖放.ppt第13章 界面布局.ppt第14章 使用图表.ppt第15章 使用定制组件.ppt第16章 定制界面.ppt第17章 数据处理和数据服务.ppt第18章 PRC服务.ppt第19章 ...

    java flex 对象定义

    java flex 对象定义 数据类型定义

    FLEX从入门到精通.pdf

     3.1.3 变量和数据类型  3.2 控制结构  3.2.1 条件语句  3.2.2 循环  3.3 使用类和数据类型  3.3.1 值类型  3.3.2 数字型  3.3.3 字符串  3.3.4 数组  3.3.5 向量  3.3.6 对象  3.3.7 类型...

    Flex 分页控件一次加载数据类型

    用于flex程序开发的控件,该控件适用于,少数据量的系统。

    Flex教程系列之(四) AS3语法——面对对象编程

    Flex教程系列之(三) AS3语法——控制语句和数据类型 http://download.csdn.net/source/1161852 Flex教程系列之(四) AS3语法——面对对象编程 http://download.csdn.net/source/1161879 Flex教程系列之(五) AS3...

    Flex4权威指南+随书源代码+Flexbuild使用工具

    5. 处理事件 6. 使用远程XML数据 7. 创建类 8. 使用数据绑定和集合 9. 将应用程序拆分成组件 10. 使用DataGroup和List 11. 创建和分派事件 12. 使用DataGrid与项目呈现器 13. 使用拖放 14. 实现导航 15. 使用格式化...

Global site tag (gtag.js) - Google Analytics