文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Flex那些事儿--设置组件属性(二)

Flex那些事儿--设置组件属性(二)

时间:2009-06-02  来源:bxl994

<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cbxl%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><style> </style>

数组组成的对象

当组件属性的对象类型要将数组作为它的值,你可以在MXML中使用子标签来声明属性,就像下面的例子显示的一样:

<mynamespace:MyComponent>

    <mynamespace:nameOfObjectProperty>

        <mx:Array>

            <mx:Number>94062</mx:Number>

            <mx:Number>14850</mx:Number>

            <mx:Number>53402</mx:Number>

        </mx:Array>

    </mynamespace:nameOfObjectProperty>

</mynamespace:MyComponent>

 

在这个例子中,用包含了三个number元素的数组初始化对象。

就像设置数组的标量值的一章描述的一样,包围着数组元素的<mx:Array>和</mx:Array>标签是可选择的和可以忽略的,如下例所示:

<mynamespace:MyComponent>

    <mynamespace:nameOfObjectProperty>

        <mx:Number>94062</mx:Number>

        <mx:Number>14850</mx:Number>

        <mx:Number>53402</mx:Number>

    </mynamespace:nameOfObjectProperty>

</mynamespace:MyComponent>

 

仅有的例外是当你声明一个单个元素数组作为对象属性的时候。在这种情况下,Flex不会创建一个包含单个元素的数组的对象,取而代之的是Flex会创建一个对象并且声明该对象的值等于数组中单个元素。下面的例子中显示了两种的不同之处:

object=[element] // 包含了单个元素数组的对象

object=element // 与单个元素值相等的对象

如果你想创建一个单个元素的数组,需要用<mx:Array>和</mx:Array>标签将数组元素包起来,如下例所示:

<mynamespace:MyComponent>

    <mynamespace:nameOfObjectProperty>

        <mx:Array>

            <mx:Number>94062</mx:Number>

        </mx:Array>

    </mynamespace:nameOfObjectProperty>

</mynamespace:MyComponent>

 

 

对象组成的数组

当组件的属性要将对象数组作为它的值的时候,你可以在MXML中使用子标签来声明该属性,如下例所示:

<mynamespace:MyComponent>

    <mynamespace:nameOfProperty>

        <mx:Array>

            <mynamespace:objectType prop1="val1" prop2="val2"/>

            <mynamespace:objectType prop1="val1" prop2="val2"/>

            <mynamespace:objectType prop1="val1" prop2="val2"/>

        </mx:Array>

    </mynamespace:nameOfProperty>

</mynamespace:MyComponent>

 

在下例中,是一个包含了由ListItem对象组成的数组的组件。每个ListItem对象都由一个label和data属性。

<mynamespace:MyComponent>

    <mynamespace:dataProvider>

        <mx:Array>

            <mynamespace:ListItem label="One" data="1"/>

            <mynamespace:ListItem label="Two" data="2"/>

        </mx:Array>

    </mynamespace:dataProvider>

</mynamespace:MyComponent>

 

在下例中,你可以声明一个匿名类来作为dataProvider属性的值。

<mynamespace:MyComponent>

    <mynamespace:dataProvider>

        <mx:Array>

            <mx:Object label="One" data="1"/>

            <mx:Object label="Two" data="2"/>

        </mx:Array>

    </mynamespace:dataProvider>

</mynamespace:MyComponent>

 

就像设置数组的标量值的一章描述的一样,包围着数组元素的<mx:Array>和</mx:Array>标签是可选择的和可以忽略的,如下例所示:

<mynamespace:MyComponent>

    <mynamespace:dataProvider>

        <mx:Object label="One" data="1"/>

        <mx:Object label="Two" data="2"/>

    </mynamespace:dataProvider>

</mynamespace:MyComponent>

 

 

设置包含了XML数据的属性

如果组件的属性为XML数据,属性的值是用命名空间定义的XML片段。在下面的例子中,MyComponent对象的属性值就是XML数据:

<mynamespace:MyComponent>

    <mynamespace:value xmlns:a="http://www.example.com/myschema">

        <mx:XML>

            <a:purchaseorder>

                <a:billingaddress>

                ...

                </a:billingaddress>

                ...

        </a:purchaseorder>

    </mx:XML>

</mynamespace:value>

</mynamespace:MyComponent>

 

在MXMl中设置样式和效果属性

MXML标签的样式或效果属性与其他属性不同,是因为这两个属性等同与ActionScript中的style和effect类,而并非是ActionScript类的属性。在ActionScript中设置这些属性要用setStyle(stylename, value)方法而不是用object.property = value 这样的标记法。

在ActionScript类中使用 [Style]或[Effect]元数据标签来定义样式或效果属性,而并不是用ActionScript变量或setter/getter方法来定义。

如下例所示,你可以在MXML中设置fontFamily样式属性:

<mx:TextArea id="myText" text="hello world" fontFamily="Tahoma"/>

 

刚才的MXML代码就等同与下面的ActionScript代码:

myText.setStyle("fontFamily", "Tahoma");

 

在MXML中设置事件属性

MXML标签的事件属性可以声明一个事件的事件监听器方法。这个事件属性就等同与在ActionScript中使用addEventListener方法来定义事件监听器一样。

在ActionScript类中使用[Event]元数据标签来定义事件属性,而并不是使用ActionScript变量或者setter/getter方法来定义。

如下例所示,你可以像这样在MXML中设置creationComplete事件属性。

<mx:TextArea id="myText" creationComplete="creationCompleteHandler()"/>

 

上面的MXML代码就等同与下面的ActionScript代码:

myText.addEventListener("creationComplete", creationCompleteHandler);

 

 

指定URL(统一资源定位符)值

一些MXML标签,比如<mx:Script>标签,有一种属性,该属性可以指定外部的文件作为它的URL值。例如,你可以在<mx:Script>标签中使用source属性来引用外部的ActionScript文件来代替直接在<mx:Script>标签体内直接使用ActionScript代码。

注意:你可以在<mx:Script>标签的source属性中指定一个代码文件。你不能在source属性指定一个ActionScript类。

MXML支持的几种URL定义类型:

§                  绝对定位,如下例所示:

§                         <mx:Style source="http://www.somesite.com/mystyles.css">

§                          

§                  在运行时相对于Flex应用程序所在的Java web应用程序的网站根目录的路径,如下例所示:

§                         <mx:HTTPService url="@ContextRoot()/directory/myfile.xml"/>

§                          

§                  在编译时相对于Flex应用程序所在的Java web应用程序的网站根目录的路径,如下例所示:

§                         <mx:Script source="/myscript.as"/>

§                          

§                  相对于当前文件位置的路径,如下例所示:

§                         <mx:Script source="../myscript.as"/>

 

定义正则表达式的值

你可以像下面的格式一样在MXML中定义正则表达式的值:

"/pattern/flags"

 

pattern 在两个斜线之间定义正则表达式。两个斜线都是缺一不可的。

flags  (可选择的)可以给这个正则表达式定义任何的值。

 

例如,MXML组件的regExpression属性是正则表达式类型。因此,你可以像下面的例子一样来设置它的值:

<mynamespace:MyComponent regExpression="/\Wcat/gi"/>

 

或者使用子标签来设置,如下例所示:

<mynamespace:MyComponent>

    <mynamespace:regExpression>/\Wcat/gi    </mynamespace:regExpression>

</mynamespace:MyComponent>

 

正则表达式的flags部分是可选择的,所以你也可以像下面的例子一样来定义:

<mynamespace:MyComponent regExpression="/\Wcat/"/>

 

 

使用编译器标签

编译器标签是那些不直接等同与ActionScript对象或属性的标签。下面的这些编译器标签的命名必须第一个字母大写:

§                  <mx:Binding>

§                  <mx:Component>

§                  <mx:Metadata>

§                  <mx:Model>

§                  <mx:Script>

§                  <mx:Style>

§                  <mx:XML>

§                  <mx:XMLList>

下面的编译器标签所有的字母都是小写的:

§                  <mx:operation>

§                  <mx:request>

§                  <mx:method>

§                  <mx:arguments>

 

MXML标签的规则

MXML必须遵循一些语法规则:

§                  任何的标签的id属性都不是必须的。

§                  根标签不允许有id属性。

§                  布尔属性只有true和false两种属性。

§                  <mx:Binding>标签需要源属性和目的属性。

§                  <mx:Binding>标签不能有id属性。

§                  <mx:WebService>标签需要wsdl值或目的值,但不需要同时存在。

§                  <mx:RemoteObject>标签需要源值或者命名值,但不需要同时存在。

§                  <mx:HTTPService>标签需要url值或者目的值,但不需要同时存在。

§                  <mx:operation>标签需要name值,但不允许多个name存在。

§                  <mx:operation>标签不允许有id属性。

§                  <mx:method>标签需要name值,但不允许多个name存在。

§                  <mx:method>标签不允许有id属性。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载