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

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函数混淆了!
分享到:
评论

相关推荐

    AMF抓取flex页面数据

    6. **Flex数据解码** - 对于AMF数据的解码,开发者可以使用开源库,如Python的pyamf或Java的BlazeDS,它们提供了解码AMF消息的能力。解码后的数据可以是JSON、XML或其他结构化格式,便于分析和处理。 7. **安全与...

    flex 官方文档 中文教程

    本教程基于Flex官方文档,旨在为开发者提供中文版的详细学习指南,帮助理解并掌握Flex的核心概念、组件、布局、事件处理以及数据绑定等关键知识点。 1. **Flex简介** Flex是基于ActionScript 3.0和Flash Player或...

    flex中文帮助文档

    Flex采用事件驱动的编程模型,用户交互、数据变化或其他系统事件都会触发相应的事件,开发者可以通过监听和处理这些事件来控制应用的行为。 七、Flex构建流程 1. 创建项目:在Flex Builder或Adobe Animate CC中创建...

    flex实现数据表格。

    2. **列配置**:你可以自定义Datagrid的列,设置列的宽度、标题、数据类型等。此外,还可以添加各种类型的列,如文本列、图像列、日期列等。 3. **排序与过滤**:Datagrid支持单列或多列排序,用户只需点击列头即可...

    Flex中文教程中文文档

    5. **数据绑定**:Flex支持数据绑定机制,允许UI组件的状态直接与应用程序的数据模型关联,当数据模型改变时,界面会自动更新,反之亦然。 6. **服务访问**:Flex可以轻松地与各种后台服务进行通信,如AMF(Action ...

    flex中文教程.pdf

    开发者可以用它来实现业务逻辑、网络通信、数据处理等功能。 六、Flex与 BlazeDS/Flash Player Flex应用通常运行在Flash Player上,BlazeDS是Adobe提供的服务器端技术,用于实现Flex应用与后端服务器的数据通信。...

    Flex数据共享与压缩

    总之,"Flex数据共享与压缩"涉及到的是如何在内存和存储资源有限的环境中高效处理和存储大数据。通过使用数据压缩和分片存储技术,我们可以确保Flex应用在面对XMLList等大数据结构时仍能保持良好的运行效率和用户...

    Flex中文帮助 学习Flex的好资料

    4. **数据绑定**:Flex中的数据绑定是其强大特性之一,它允许UI组件的状态与应用程序数据自动同步。这大大简化了代码,提高了开发效率。 5. **事件驱动编程**:Flex应用程序是基于事件驱动的,用户操作或其他系统...

    FLEX中文教程+实例

    2. ActionScript:是面向对象的脚本语言,与MXML配合使用,实现应用程序的业务逻辑和数据处理。ActionScript支持类、接口、包等面向对象特性。 四、Flex组件模型 Flex组件库包含了大量的预定义UI组件,如按钮、...

    flex数据交互_方式

    总的来说,“flex数据交互方式”涉及到Flex框架中数据绑定、事件处理和网络通信等多个方面的深入理解。掌握这些技术对于开发高质量、高性能的富互联网应用程序至关重要。开发者需要熟悉如何有效地使用这些工具和技术...

    Flex中文学习文档

    开发过程中还需要Microsoft Visual Studio来处理服务端程序,以及支持Flash Player 9或10的WEB浏览器来运行Flex应用。 在Flex中,RTMP(实时消息传输协议)是一个关键协议,用于Flash播放器与服务器之间的音视频和...

    flex数据绑定的原理

    6. **性能优化**:Flex数据绑定系统还包含了一些性能优化,比如变化传播的限制和缓存机制,以避免不必要的更新和提高效率。 7. **表达式绑定**:除了简单的变量绑定,Flex还支持复杂的表达式绑定,可以连接多个数据...

    flex中tree的数据源是xml

    在上述描述中提到了如何利用ASP.NET进行数据处理并生成XML文件的具体实现方式。下面将详细解释这一过程: 1. **获取配置信息**: - 使用`ConfigurationManager.AppSettings["ConnectionString"]`获取数据库连接...

    《Flex_help》,Flex中文帮助

    Flex Framework是Flex的核心组件库,包含了许多预定义的UI组件,如按钮、列表、面板等,以及数据绑定和事件处理机制。 1. **ActionScript**:Flex的基础是ActionScript,这是一种面向对象的脚本语言,类似于...

    Flex中文帮助文档

    5. **Flex组件**:Flex提供了一系列预定义的UI组件,如按钮、文本输入框、列表、面板等,这些组件可以方便地拖放到设计视图中,通过属性设置和事件处理实现丰富的用户交互。 6. **数据绑定**:Flex的数据绑定功能...

    flex中文帮助.rar

    8. **事件处理**:Flex应用中的事件处理是通过事件监听器实现的,允许程序对用户的交互做出响应,如点击按钮、关闭窗口等。 9. **图形和动画**:Flex提供了强大的图形绘制和动画功能,可以创建复杂的矢量图形和动态...

    flex中文教程伴有flexbuilder

    6. **事件处理**:在Flex中,事件驱动编程是核心机制之一。教程会介绍如何监听和处理各种用户交互事件,以实现应用程序的响应式设计。 7. **动画与效果**:Flex允许创建丰富的视觉效果和动画,提升用户体验。教程会...

    FLEX资源——FLEX数据绑定专题(中文PDF)

    《FLEX数据绑定专题》是一本深入探讨Adobe Flex中数据绑定技术的专业中文PDF文档。Flex是一种用于构建富互联网应用程序(RIA)的开放源码框架,它允许开发者创建交互性强、功能丰富的Web应用。数据绑定是Flex中一个...

Global site tag (gtag.js) - Google Analytics