﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-【永恒的瞬间】  -文章分类-flex2.0</title><link>http://www.blogjava.net/19851985lili/category/19161.html</link><description>☜GivE mE HapPy ☞




</description><language>zh-cn</language><lastBuildDate>Wed, 11 Apr 2007 05:30:05 GMT</lastBuildDate><pubDate>Wed, 11 Apr 2007 05:30:05 GMT</pubDate><ttl>60</ttl><item><title> Java  ActionScript</title><link>http://www.blogjava.net/19851985lili/articles/109871.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 11 Apr 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/109871.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/109871.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/109871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/109871.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/109871.html</trackback:ping><description><![CDATA[<table style="WIDTH: 492pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=655 border=0 x:str>
    <colgroup>
    <col style="WIDTH: 218pt; mso-width-source: userset; mso-width-alt: 9280" width=290>
    <col style="WIDTH: 274pt; mso-width-source: userset; mso-width-alt: 11680" width=365>
    <tbody>
        <tr style="HEIGHT: 17.25pt" height=23>
            <td class=xl24 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; WIDTH: 492pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 17.25pt; BACKGROUND-COLOR: transparent; mso-ignore: colspan" width=655 colSpan=2 height=23><font face=Verdana size=4><strong>Converting data from Java to ActionScript</strong></font></td>
        </tr>
        <tr style="HEIGHT: 8.25pt; mso-height-source: userset" height=11>
            <td class=xl24 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; HEIGHT: 8.25pt; BACKGROUND-COLOR: transparent" height=11><font face=Verdana size=4><strong></strong></font></td>
            <td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"><font face=Verdana size=4><strong></strong></font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl25 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: silver" width=290 height=20><strong><font face=Verdana>Java type</font></strong></td>
            <td class=xl28 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: silver" width=365><strong><font face=Verdana>ActionScript type (AMF 3)</font></strong></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl26 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" width=290 height=20><font face=Verdana>java.lang.String</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>String</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>java.lang.Boolean, boolean</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Boolean</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 46.5pt; BACKGROUND-COLOR: transparent" width=290 height=62 rowSpan=2><font face=Verdana>java.lang.Integer</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>int</font></td>
        </tr>
        <tr style="HEIGHT: 32.25pt; mso-height-source: userset" height=43>
            <td class=xl31 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 32.25pt; BACKGROUND-COLOR: transparent" width=365 height=43><font face=Verdana>If i &lt; 0xF0000000 || i &gt; 0x0FFFFFFF, the value is promoted to Number.</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 46.5pt; BACKGROUND-COLOR: white" width=290 height=62 rowSpan=2><font face=Verdana>java.lang.Short</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>int</font></td>
        </tr>
        <tr style="HEIGHT: 32.25pt; mso-height-source: userset" height=43>
            <td class=xl32 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 32.25pt; BACKGROUND-COLOR: white" width=365 height=43><font face=Verdana>If i &lt; 0xF0000000 || i &gt; 0x0FFFFFFF, the value is promoted to Number.</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 42pt; BACKGROUND-COLOR: transparent" width=290 height=56 rowSpan=2><font face=Verdana>java.lang.Byte</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>int</font></td>
        </tr>
        <tr style="HEIGHT: 27.75pt; mso-height-source: userset" height=37>
            <td class=xl31 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 27.75pt; BACKGROUND-COLOR: transparent" width=365 height=37><font face=Verdana>If i &lt; 0xF0000000 || i &gt; 0x0FFFFFFF, the value is promoted to Number.</font></td>
        </tr>
        <tr style="HEIGHT: 21.75pt; mso-height-source: userset" height=29>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 21.75pt; BACKGROUND-COLOR: white" width=290 height=29><font face=Verdana>java.lang.Byte[]</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>flash.utils.ByteArray</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl26 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" width=290 height=20><font face=Verdana>java.lang.Double</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>Number</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>java.lang.Long</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Number</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl26 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" width=290 height=20><font face=Verdana>java.lang.Float</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>Number</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>java.lang.Character</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>String</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl26 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" width=290 height=20><font face=Verdana>java.lang.Character[]</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>String</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 60pt; BACKGROUND-COLOR: white" width=290 height=80 rowSpan=2><font face=Verdana>java.util.Calendar</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Date</font></td>
        </tr>
        <tr style="HEIGHT: 45.75pt; mso-height-source: userset" height=61>
            <td class=xl32 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 45.75pt; BACKGROUND-COLOR: white" width=365 height=61><font face=Verdana>Dates are sent in the Coordinated Universal Time (UTC) time zone. Clients and servers must adjust time accordingly for time zones.</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 58.5pt; BACKGROUND-COLOR: transparent" width=290 height=78 rowSpan=2><font face=Verdana>java.util.Date</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>Date</font></td>
        </tr>
        <tr style="HEIGHT: 44.25pt; mso-height-source: userset" height=59>
            <td class=xl31 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 44.25pt; BACKGROUND-COLOR: transparent" width=365 height=59><font face=Verdana>Dates are sent in the UTC time zone. Clients and servers must adjust time accordingly for time zones.</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 47.25pt; BACKGROUND-COLOR: white" width=290 height=63 rowSpan=2><font face=Verdana>java.lang.Object (other than previously listed types)</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Typed Object</font></td>
        </tr>
        <tr style="HEIGHT: 33pt; mso-height-source: userset" height=44>
            <td class=xl32 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 33pt; BACKGROUND-COLOR: white" width=365 height=44><font face=Verdana>Objects are serialized using Java Bean introspection rules. Fields that are static, transient, or nonpublic are excluded.</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl26 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: transparent" width=290 height=20><font face=Verdana>java.util.Collection</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>mx.collection.ArrayCollection</font></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>java.lang.Object[]</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Array</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 83.25pt; BACKGROUND-COLOR: transparent" width=290 height=111 rowSpan=2><font face=Verdana>java.util.Map</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>Object (untyped)</font></td>
        </tr>
        <tr style="HEIGHT: 69pt; mso-height-source: userset" height=92>
            <td class=xl33 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 69pt; BACKGROUND-COLOR: transparent" width=365 height=92><a href="http://127.0.0.1:50178/help/nftopic/com.adobe.flexbuilder.help/html/ent_services_config_097_09.html#268711"><u><font face="ＭＳ Ｐゴシック" color=#0000ff>In Flex 1.5, java.util.Map was sent as an associative or ECMA Array. This is no longer a recommended practice. You can enable legacy Map support to associative Arrays, but Adobe recommends against doing this. For more information, see Providing legacy AMF serialization on a channel</font></u></a></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>java.util.Dictionary</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>Object (untyped)</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 56.25pt; BACKGROUND-COLOR: transparent" width=290 height=75 rowSpan=2><font face=Verdana>org.w3c.dom.Document</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>XML object</font></td>
        </tr>
        <tr style="HEIGHT: 42pt; mso-height-source: userset" height=56>
            <td class=xl33 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 42pt; BACKGROUND-COLOR: transparent" width=365 height=56><a href="http://127.0.0.1:50178/help/nftopic/com.adobe.flexbuilder.help/html/ent_services_config_097_09.html#268711"><u><font face="ＭＳ Ｐゴシック" color=#0000ff>You can enable legacy XML support for the XMLDocument type on any channel defined in the services-config.xml file. For more information, see Providing legacy AMF serialization on a channel.</font></u></a></td>
        </tr>
        <tr style="HEIGHT: 15pt" height=20>
            <td class=xl27 style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: silver; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: #d4d0c8; HEIGHT: 15pt; BACKGROUND-COLOR: white" width=290 height=20><font face=Verdana>null</font></td>
            <td class=xl30 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: white" width=365><font face=Verdana>null</font></td>
        </tr>
        <tr style="HEIGHT: 14.25pt" height=19>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver 1pt solid; WIDTH: 218pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 40.5pt; BACKGROUND-COLOR: transparent" width=290 height=54 rowSpan=2><font face=Verdana>Other classes that extend java.lang.Object</font></td>
            <td class=xl29 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: silver 1pt solid; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width=365><font face=Verdana>Object (typed)</font></td>
        </tr>
        <tr style="HEIGHT: 26.25pt; mso-height-source: userset" height=35>
            <td class=xl34 style="BORDER-RIGHT: silver 1pt solid; BORDER-TOP: #d4d0c8; BORDER-LEFT: silver; WIDTH: 274pt; BORDER-BOTTOM: silver 1pt solid; HEIGHT: 26.25pt; BACKGROUND-COLOR: transparent" width=365 height=35><font face=Verdana>Objects are serialized using Java Bean introspection rules. Fields that are static, transient, or nonpublic are excluded.</font></td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/109871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-04-11 13:02 <a href="http://www.blogjava.net/19851985lili/articles/109871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让Flex应用程序中的UI组件拥有各自的快捷键</title><link>http://www.blogjava.net/19851985lili/articles/101468.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 02 Mar 2007 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101468.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101468.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101468.html</trackback:ping><description><![CDATA[
		<div class="entry-body">找到了一个<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b> RemoteObject结合CFC使用的例子.在这里我来详细讲一下.<br />主要三个文件.<br /><strong><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b>: main.mxml<br />AS: Test.as<br />CFC: test.cfc</strong><br /><br />先教大家<font size="2"><font color="#ff0000">配置</font></font>一下.<br /><strong>main.mxml放到<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b>的根目录下.<br />Test.as放到<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b>的根目录下的cfcRemoting文件内.<br />test.cfc放到Coldfusion的根目录下的cfcRemoting文件内.</strong><br /><br /><strong>main.mxml</strong>文件的内容:<br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application xmlns:mx="<a href="http://www.macromedia.com/2003/mxml" target="_blank"><strong><font color="#006f93">http://www.macromedia.com/2003/mxml</font></strong></a>" &gt;<br /> &lt;mx:Script&gt;<br /> &lt;![CDATA[<br />  var dependency:cfcRemoting.Test;<br /> ]]&gt;<br /> &lt;/mx:Script&gt;<br /> &lt;mx:RemoteObject <br />  endpoint="<a href="http://localhost:8300/flashservices/gateway" target="_blank"><strong><font color="#006f93">http://localhost:8300/flashservices/gateway</font></strong></a>"<br />  source="cfcRemoting.test"<br />  id="ro"<br /> /&gt;<br /> &lt;mx:DateFormatter formatString="hh:mm:ss" id="dateFormatter" /&gt;<br /> &lt;mx:Panel title="CFC Remoting" width="350"&gt;<br />  &lt;mx:List id="objList" dataProvider="{ro.getObjectArray.result}" width="100%" /&gt;<br />  &lt;mx:TextInput editable="false" text="{objList.selectedItem}" width="100%" /&gt;<br />  &lt;mx:ControlBar&gt;<br />   &lt;mx:Label text="Number of objects:"/&gt;<br />   &lt;mx:NumericStepper id="amount" minimum="1" maximum="500" value="/5" /&gt;<br />   &lt;mx:Button label="invoke" click="ro.getObjectArray(amount.value)" /&gt;<br />  &lt;/mx:ControlBar&gt;<br /> &lt;/mx:Panel&gt;<br />&lt;/mx:Application&gt;</div></td></tr></tbody></table><br /><strong>1.首先分析看一下他的外观是如何的.</strong><br /><br />外观用了一个<strong>Panel</strong>:用于装下面的组件.一个<strong>List</strong>:用于存放从CFC传回来的<a name="baidusnap2"></a><b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>.一个<strong>TextInput</strong>:用于显示List被选的条目.一个:<strong>ControlBar</strong>:用于装Label, NumericStepper,与Button. <strong>NumericStepper</strong>用于用户所需生成的对象数,<strong>Button</strong>用于调用CFC.<br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application xmlns:mx="<a href="http://www.macromedia.com/2003/mxml" target="_blank"><strong><font color="#006f93">http://www.macromedia.com/2003/mxml</font></strong></a>" &gt;<br /> &lt;mx:Panel title="CFC Remoting" width="350"&gt;<br />  &lt;mx:List id="objList" width="100%"/&gt;<br />  &lt;mx:TextInput editable="false" width="100%" /&gt;<br />  &lt;mx:ControlBar&gt;<br />   &lt;mx:Label text="Number of objects:"/&gt;<br />   &lt;mx:NumericStepper id="amount" minimum="1" maximum="500" value="5" /&gt;<br />   &lt;mx:Button label="invoke" /&gt;<br />  &lt;/mx:ControlBar&gt;<br /> &lt;/mx:Panel&gt;<br />&lt;/mx:Application&gt;</div></td></tr></tbody></table> <br /><br />好了,外观出来了.<br /><strong>2.再看一下除外观标签外的标签.</strong><br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">&lt;mx:Script&gt;<br /> &lt;![CDATA[<br />  //这里声明了一个CFC组件的一个对象.<br />  var dependency:cfcRemoting.Test;<br /> ]]&gt;<br /> &lt;/mx:Script&gt;<br /> &lt;mx:RemoteObject <br />  // endpoint属性指定网关,这里根大家的配置所填.我这里的是CF7.0的.如果用CFMX的端口改回8500<br />  endpoint=http://localhost:8300/flashservices/gateway<br />  // source属性指定CFC的文件<br />  source="cfcRemoting.test"<br />  //id属性指定实例名,用于在程序中的引用<br />  id="ro"<br /> /&gt;<br /> //formatString属性指定时间的格式<br /> //id属性指定实例名,用于在程序中的引用<br /> &lt;mx:DateFormatter formatString="hh:mm:ss" id="dateFormatter" /&gt;</div></td></tr></tbody></table> <br /><strong>3.再看看外观的代码:</strong><br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">//标题设为"CFC Remoting"<br />//宽设为: 350<br />&lt;mx:Panel title="CFC Remoting" width="350"&gt;<br />  // dataProvider属性<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>等于ro. getObjectArray.result得回来的<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>.<br />  &lt;mx:List id="objList" dataProvider="{ro.getObjectArray.result}" width="100%" /&gt;<br />  // text属性<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>是等于"objList"中被选择的条目<br />  &lt;mx:TextInput editable="false" text="{objList.selectedItem}" width="100%" /&gt;<br />  &lt;mx:ControlBar&gt;<br />   &lt;mx:Label text="Number of objects:"/&gt;<br />   &lt;mx:NumericStepper id="amount" minimum="1" maximum="500" value="/5" /&gt;<br />   // click事件调用ro.getObjectArray()，将NumericStepper的<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>传到CFC里<br />   &lt;mx:Button label="invoke" click="ro.getObjectArray(amount.value)" /&gt;<br />  &lt;/mx:ControlBar&gt;<br /> &lt;/mx:Panel&gt;</div></td></tr></tbody></table><br /><strong>4.test.cfc的内容</strong><br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">&lt;cfcomponent&gt;<br /> &lt;cfset this.remoteClass="cfcRemoting.Test"&gt;<br /> &lt;cffunction name="getObject" access="remote" returntype="struct"&gt;<br />  &lt;cfargument name="num" type="numeric" required="yes"&gt;<br />  &lt;cfset var obj=StructNew()&gt;<br />  &lt;cfset obj["_remoteClass"] = this.remoteClass&gt;<br />  &lt;cfset obj["date"] = now()&gt;  <br />  &lt;cfset obj["name"] = "Object #num#"&gt;  <br />  &lt;cfreturn obj&gt;<br /> &lt;/cffunction&gt;<br /> &lt;cffunction name="getObjectArray" access="remote" returntype="array"&gt;<br />  &lt;cfargument name="amount" type="numeric" required="no" default="1"&gt;<br />  &lt;cfset arr = ArrayNew(1)&gt;<br />  &lt;cfloop from="1" to=#amount# index="j"&gt;<br />   &lt;cfset arr[j]=#getObject(j)#&gt;<br />  &lt;/cfloop&gt;<br />  &lt;cfreturn arr&gt;<br /> &lt;/cffunction&gt;<br />&lt;/cfcomponent&gt;</div></td></tr></tbody></table><br />这个组件有两个方法. <strong>getObject()</strong>与<strong>getObjectArray().</strong><br />这里的<strong>getObject()</strong>方法是由<strong>getObjectArray()</strong>方法去调用的.<br /><strong>getObjectArray()</strong>方法是<strong>main.mxml</strong>中的<strong>ro</strong>对象所调用的,<br /><strong>看一下他们做了些什么</strong><br /><strong>getObjectArray()</strong>方法就根据<strong>main.mxml</strong>中的<strong>NumericStepper</strong>的<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>来动态生成数组个数.<br />每个数组都调用<strong>getObject()</strong> 方法来填充数据为一个结构.<br /><strong>getObject()</strong> 方法就将每个数组都赋上一个结构。<br />结构体里有：<strong>["_remoteClass"]，["date"]，["name"]</strong>三条。<br /><strong>5.Test.as的代码：</strong><br /><table cellspacing="0" cellpadding="1" width="96%" align="center" border="0"><tbody><tr><td><b>程序代码：</b></td></tr><tr><td><div class="code">class cfcRemoting.Test {<br /> //定义一个name<br /> public var name:String;<br /> //定义一个时间<br /> public var date:Date;<br /> //构造函数<br /> public function Test() {<br /> }<br /> public function get label():String {<br />  //返回这个<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>到main.mxml的List里<br />  return name + " (label test)";<br /> }<br /> <br /> public function toString():String {<br />  //返回这个<b style="COLOR: black; BACKGROUND-COLOR: #99ff99">值</b>到main.mxml的TextInput里<br />  return "Hi, this is " + name + ", created " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + ":" + date.getMilliseconds();<br /> }<br />}</div></td></tr></tbody></table><br /><br />好了.完成了.大家试用一下吧.<br /></div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/101468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-03-02 14:10 <a href="http://www.blogjava.net/19851985lili/articles/101468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex：RemoteObject 和 DataGrid 数据交互， AS 与java 数据类型转换 </title><link>http://www.blogjava.net/19851985lili/articles/101446.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 02 Mar 2007 04:38:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101446.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101446.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101446.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 10pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;mx:RemoteObject   id="RO" source="org.sjtu.se.Applex" fault="alert(fault.faultString, 'Error');"&gt;<br />    &lt;mx:method name="listPerson"/&gt;<br />&lt;/mx:RemoteObject&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 10pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;mx:Model id="myModel"&gt;<br />    {RO.listPerson.result}<br />&lt;/mx:Model&gt;</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 10pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">&lt;mx:DataGrid id="DG" with="100%" height="100%" dataProvider="{myModel}"&gt;<br />    &lt;mx:columns&gt;<br />        &lt;mx:array&gt;<br />            &lt;mx:DataGridColumn headerText="Name" <font color="#0000ff">columnName="name"</font>/&gt;<br />            &lt;mx:DataGridColumn headerText="Age"  <font color="#0000ff">columnName="age"/</font>&gt;<br />        &lt;/mx:array<br />    &lt;/mx:columns&gt;<br />&lt;/mx:DataGrid&gt;<br /><br />public class Person<br />{<br />    String name;<br />    int age;<br />    //getters and setters here.<br />    //getters and setters are must for <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b> to access the data in object of<br />    //this class<br />}<br /><br />public List listPerson()<br />{<br />    List list = new ArrayList();<br />    Person p1 = new Person("seafront", 22);<br />    Person p2 = new Person("frontsea", 20);<br />    list.add(p1); list.add(p2);<br />    return list;<br />} 
<p></p></span>
		</p>
		<p>
		</p>
		<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<br style="PAGE-BREAK-BEFORE: always; mso-special-character: line-break" clear="all" />
		</span>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 10pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<p> </p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">是</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">flex</b>
				</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">与</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">java </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">交互主要还是要关心这两者之间的数据交互类型的转换。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">ActionScript </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">与</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">java </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">的类型互换不是对称的，见下面的表：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<table class="MsoNormalTable" style="WIDTH: 450pt; mso-cellspacing: .7pt" cellspacing="1" cellpadding="0" width="600" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" colspan="2">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">ActionScript to Java 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> ActionScript Type 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Java Type 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 2">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> null 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> null 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 3">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Number 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.Number 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 4">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Boolean 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.Number, booean, <br /> java.lang.String 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 5">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> String 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.String, java.lang.Boolean<br /> boolean, java.lang.Character, char,<br /> java.lang.Number 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Date<br /> XML Object 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.util.Date<br /> org.w<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3c</chmetcnv>.dom.Document 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">                      
<p></p></span>
		</p>
		<p>
		</p>
		<table class="MsoNormalTable" style="WIDTH: 450pt; mso-cellspacing: .7pt" cellspacing="1" cellpadding="0" width="600" border="1">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" colspan="2">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center; mso-pagination: widow-orphan" align="center">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java to ActionScript 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Java Type 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> ActionScript Type 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 2">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> null 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> null 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 3">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.Number(class or primitive) 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Number 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 4">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.Boolean, boolean 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Boolean 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 5">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.lang.String, java.lang.Character<br /> char[] 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> String 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 6">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.util.Collection, java.lang.reflect.Array 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Array 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 7">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> java.util.Map, java.util.Dictionary 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Object 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 8">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> org.w<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3c</chmetcnv>.dom.Document 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> XML Object 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 9; mso-yfti-lastrow: yes">
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Other classes 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
								<td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
												<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Object(typed) 
<p></p></span>
										</p>
										<p>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">由上面两表可以看到，一般的数据类型都可以很好的装换，但是对于用户自定义的类型的话，那么要不就是在</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">ActionScritp</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">中定义相关的数据类型，进行类型注册，但是这样两者就太紧耦合了，觉得不是很好。另外的话可以看到，</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">java </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">可以返回</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Collection </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">类型的集合类给</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">ActionScript </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，而</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">AS </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">使用是一数组来处理，就像前面例子里的一样，虽然</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Person</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">是自定义类，但是里面的成员都是基本</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">AS </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">可自动转换的类型的，而把</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Person </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">对象放在</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">List</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">里返回，然后</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">AS </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">通过数组</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
				</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">[] </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">操作符来访问，直接操作</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">name </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">和</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> age </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">成员变量。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">所以如果用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">flex</b>
				</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">作表现曾的话，那么对于</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">model </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">中的类，就可能要考虑这一点，有时候需要专门为</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">flex</b>
				</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">编写与其兼容的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">model </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">类。可见两种方法都需要额外的工作，根据不同情况来选择就好。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" align="left">
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">还有如果从</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Flex</b>
				</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">中提交一个</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Array </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">到</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Java </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">方法中，</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">java</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">方法以</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> Collection</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">来接受，如果</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Array</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">不是常规数组，就是说数组元素不是用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">index</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">来访问，那么里面每个元素是一个</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Map(<a name="baidusnap1"></a><b style="COLOR: black; BACKGROUND-COLOR: #a0ffff">HashMap</b>), key</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">是这个数组访问变量，比要把上面</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">datagrid</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt"> dataProvider </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">提交大</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">java </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">方法中，那么</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Map </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">的</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">key </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">就是</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">name </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">和</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">age</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">，使用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Map.get()</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">从而取出里面的数据。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
						<p>
						</p>
				</span>
		</p>
		<p>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt">
						<p>
								<font face="Times New Roman">
								</font> </p>
				</span>
		</p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/101446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-03-02 12:38 <a href="http://www.blogjava.net/19851985lili/articles/101446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex2.0处理异步事件</title><link>http://www.blogjava.net/19851985lili/articles/101206.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 28 Feb 2007 11:51:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101206.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101206.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101206.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101206.html</trackback:ping><description><![CDATA[
		<p>翻译了一篇kuwamoto以前的一篇关于如何处理异步事件的日志。这一系列共有三部分，我会陆续把他们都翻译出来，今天先贴出来第一部分。</p>
		<p>原文地址：<span><a href="http://kuwamoto.org/2006/05/16/dealing-with-asynchronous-events-part-1/"><a href="http://kuwamoto.org/2006/05/16/dealing-with-asynchronous-events-part-1/">http://kuwamoto.org/2006/05/16/dealing-with-asynchronous-events-part-1/</a></a></span></p>
		<p class="MsoNormal">
				<span style="FONT-FAMILY: 宋体">原文作者：</span>
				<span>Sho Kuwamoto</span>
		</p>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="FONT-FAMILY: 宋体">译者：</span>
				<span>Dreamer (<a href="http://www.zhuoqun.net/"><a href="http://www.zhuoqun.net/">http://www.zhuoqun.net</a></a>)</span>
		</p>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p class="MsoNormal">
				<span>_______________________________________________________________________________</span>
		</p>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<h3 style="TEXT-ALIGN: center" align="center">处理异步事件，第一部分</h3>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p class="MsoNormal">
				<span style="FONT-FAMILY: 宋体">使用异步事件模型的一个困难就是很难写出易读的代码。</span>
				<span style="DISPLAY: none">&lt;}0{&gt;</span>
				<span style="FONT-FAMILY: 宋体">这对于</span>
				<span>AJAX</span>
				<span style="FONT-FAMILY: 宋体">以及</span>
				<span>Flex</span>
				<span style="FONT-FAMILY: 宋体">应用程序都是同样真实的道理。</span>
		</p>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>
				<span>过去几个月以来，我针对这个问题尝试了各种各样的方法。我认为这能帮助我漫步在曾经尝试的各种代码中，并以此说明不同的方法。</span>
		</p>
		<p>让我们以<span>RPC service </span>调用为例。假设我正在使用一个<span>http service</span>来获得一个唱片的信息：</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// I'd like to do something with the results of</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// my request, but I can't!</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>问题是结果并不是立刻就返回。代码在执行而结果可能在数百毫秒内无法返回。此外，<span>Flash Player</span>不提供一个阻滞的方法来等待结果就绪。为了相应最终返回的结果，你需要俘获一个事件。</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getAlbumInfoResult(event: Event) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Hundreds of milliseconds later, my results</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// have arrived, and I can add them to my list!</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myAlbumList.addAlbum(event.result.album);</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>这并不太差劲，是吗？现在，想象一下现在我需要在结果函数中使用<span>albumId</span>，而恰好<span>RPC send()</span>方法就有一个叫做呼叫对象（<span>call object</span>）的特殊对象来让我们那样做。</p>
		<h3>使用呼叫对象来传递参数</h3>
		<p>呼叫对象是一个一旦结果事件（<span>result event</span>）触发就会被传送到结果处理程序的对象。</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Make the call, and save a value for later use.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var call : Object = myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call.albumId = albumId;</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getAlbumInfoResult(event: Event) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Use the albumId value that was passed to me from above</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// as part of the call object.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myAlbumList.addAlbum(event.call.albumId, event.result.album);</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>现在，假设我需要把这些呼叫串在一起。它会变得非常凌乱不堪。</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Save the albumId for use later!</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var call : Object = myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call.albumId = albumId;</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getAlbumInfoResult(event: Event) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var artistId: int = event.result.album.artistId;</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myAlbumList.addAlbum(event.call.albumId, event.result.album);</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getArtistInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "artist", artistId : artistId };</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Now, save the artistId for use later!</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var call = myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call.artistId = artistId;</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getArtistInfoResult(event: Event) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myArtistList.addArtist(event.call.artistId, event.result.artist);</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>下面，让我们假设一种更复杂的情形：如果多个呼叫程序需要调用同一个<span>HTTP service</span>呢？你如何确保正确地处理返回结果？</p>
		<h3>多个呼叫的问题</h3>
		<p>让我们把上面的代码做点简单的改变来阐明这个问题。</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Wire up my result handler.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Ask for the album info.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Also ask for the album art.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "albumArt", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getAlbumInfoResult(event: Event) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// At this point, I have no idea whether I should be</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// handling the album info or the album art.</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>对这个问题的愚蠢的解决方法就是在第一个<span>send</span>之前绑定第一个函数，在第二个<span>send</span>之前绑定第二个函数：</p>
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Wire up my result handler.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Ask for the album info.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// BUG!! This will not work!</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.removeEventListener("result", getAlbumInfoResult);</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.addEventListener("result", getAlbumArtResult);</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Also ask for the album art.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "albumArt", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>如果你对异步编程很熟悉的话，你马上就会明白问题在哪里。对于那些不熟悉的人，这里列出了将会发生的事件的顺序：</p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>1.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">一个“</span><span>result</span><span style="FONT-FAMILY: 宋体">”的监听器（</span><span>listener</span><span style="FONT-FAMILY: 宋体">）将会绑定到</span><span>getAlbumInfoResult()</span><span style="FONT-FAMILY: 宋体">。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>2.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">建立</span><span>album info</span><span style="FONT-FAMILY: 宋体">请求。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>3.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">先前的监听器被移除。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>4.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">“</span><span>result</span><span style="FONT-FAMILY: 宋体">”的一个新的监听器被绑定到</span><span>getAlbumArtResult()</span><span style="FONT-FAMILY: 宋体">。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>5.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">建立</span><span>album art </span><span style="FONT-FAMILY: 宋体">请求。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>6.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">等待一段时间。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>7.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">由于网络没有任何规律，</span><span>album info</span><span style="FONT-FAMILY: 宋体">的结果返回或者是</span><span>album art</span><span style="FONT-FAMILY: 宋体">的结果返回。</span></p>
		<p class="MsoNormal" style="MARGIN-LEFT: 34.5pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left" align="left">&lt;!--[if !supportLists]--&gt;<span><span>8.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal"></span></span></span>&lt;!--[endif]--&gt;<span style="FONT-FAMILY: 宋体">不管哪个呼叫返回，它都会找到</span><span>getAlbumArtResult()</span><span style="FONT-FAMILY: 宋体">。因为这个时候它是唯一注册的监听器。</span></p>
		<h3>解决多个呼叫（<span>mutiple call</span>）的问题</h3>
		<p>解决多个呼叫问题的传统方法就是吧<span>callback</span>函数附加到呼叫对象上。这样可以正常工作，因为每次<span>service</span>被调用的时候一个唯一的呼叫对象就会被创建。</p>
		<pre>
				<span>public function doInit()</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>
						<span>
						</span>myService.addEventListener("result", handleResult);</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function getAlbumInfo(albumId: int) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var call : Object;</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Ask for the album info.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "album", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call = myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>
						<span>
						</span>call.handler = getAlbumInfoResult;</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Also ask for the album art.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>myService.request = { type: "albumArt", albumId: albumId };</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call = myService.send();</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>call.handler = getAlbumArtResult;</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>public function handleResult(event: ResultEvent) : void</span>
		</pre>
		<br />
		<pre>
				<span>{</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Retrieve the call object from the event.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var call : Object = event.call;</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Get the handler.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>var handler : Function = call.handler;</span>
		</pre>
		<br />
		<pre>
				<span>
				</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// Call the handler. We use handler.call(xxx) instead</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>// of handler(xxx) to properly deal with the scope chain.</span>
		</pre>
		<br />
		<pre>
				<span>
						<span>
						</span>handler.call(null, event);</span>
		</pre>
		<br />
		<pre>
				<span>}</span>
		</pre>
		<p class="MsoNormal">
				<span>
				</span>
		</p>
		<p>这在个新的代码中，两个对<span>service</span>的调用会呼叫同一个处理函数，但是实际上被呼叫的处理函数是隐藏在呼叫对象中的那个。在第一次呼叫的情况中，<span>getAlbumInfoResult()</span>将会被呼叫，而在第二种情况下，<span>getAlbumArtResult()</span>将会被呼叫。</p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/101206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-28 19:51 <a href="http://www.blogjava.net/19851985lili/articles/101206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 dispatchEvent() 方法</title><link>http://www.blogjava.net/19851985lili/articles/101168.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 28 Feb 2007 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101168.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101168.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101168.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101168.html</trackback:ping><description><![CDATA[
		<div align="left">
				<strong>
						<span style="FONT-SIZE: 10pt">使用 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>() 方法</span>
				</strong>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">在组件 ActionScript 类文件的正文中，您可以使用 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>() 方法来广播事件。<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>() 方法的语法如下：</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>(eventObj)</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">eventObj </span>
				<span style="FONT-SIZE: 10pt">参数是一个描述事件的 ActionScript 对象<br />在调用 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>() 方法之前，必须在代码中对其进行声明，如下所示：</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">private var <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>:Function;</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">此外，还必须创建一个事件对象以传递给 <b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>()。该事件对象包含侦听器可用来处理该事件的有关信息。</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">在发送事件之前可以显式地构建一个事件对象，如下面示例所示：</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">var eventObj = new Object();</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">eventObj.type = "myEvent";</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">eventObj.target = this;</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>(eventObj);</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">您也可以使用快捷语法在一行代码中设置 type 属性和 target 属性的值，并发送事件：</span>
		</div>
		<div style="TEXT-ALIGN: left" align="left">
				<span style="FONT-SIZE: 12pt">ancestorSlide.<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">dispatchEvent</b>({type:"revealChild", target:this});</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">在上面的示例中，由于 target 属性是隐式的，因此，设置该属性是可选操作。</span>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">Flash 8 </span>
				<span style="FONT-SIZE: 10pt">文档中对每个事件的说明列出了可选和必需的事件属性。例如，ScrollBar.scroll 事件除了使用 type 和 target 属性外，还使用 detail 属性。有关详细信息，请参阅"组件语言参考"中的事件说明。</span>
		</div>
		<div align="left">
				<strong>
						<span style="FONT-SIZE: 10pt">公共事件</span>
				</strong>
		</div>
		<div align="left">
				<span style="FONT-SIZE: 10pt">下表列出了由各种类广播的公共事件。如果事件适用于组件，每个组件都应广播这些事件。这里没有列出所有组件的全部事件，只列出了可能会由其它组件重新使用的事件。虽然某些事件未指定任何参数，但所有事件都有隐式参数：对广播事件的对象的引用。</span>
		</div>
		<table cellspacing="0" cellpadding="0" border="0">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="center">
												<span style="FONT-SIZE: 10pt">事件</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="center">
												<span style="FONT-SIZE: 10pt">使用</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">click</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">由 Button 组件使用，或在鼠标单击没有其它含义时使用。 </span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">change</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">由 List、ComboBox 和其它文本输入组件使用。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">scroll</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">由 ScrollBar 和其它导致滚动（在滚动弹出菜单上滚动"缓冲器"）的控件使用。</span>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
		<div align="left">
				<span style="FONT-SIZE: 10pt">此外，由于是从基类继承而来，所有组件都广播以下事件：</span>
		</div>
		<table style="WIDTH: 405pt" cellspacing="0" cellpadding="0" width="540" border="0">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="center">
												<span style="FONT-SIZE: 10pt">UIComponent </span>
												<span style="FONT-SIZE: 10pt">事件</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="center">
												<span style="FONT-SIZE: 10pt">说明</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">load</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件正在创建或加载其子对象。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">unload</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件正在卸载其子对象。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">focusIn</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件现在有输入焦点。某些 HTML 等效组件（ListBox、ComboBox、Button、Text）还可以广播 focus，但所有组件都广播 DOMFocusIn。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">focusOut</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件已失去输入焦点。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">move</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件已被移至新位置。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">resize</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 336.2pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="448">
										<div align="left">
												<span style="FONT-SIZE: 10pt">组件大小已更改。</span>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
		<div align="left">
				<span style="FONT-SIZE: 10pt">下表对一些常见的键事件进行说明：</span>
		</div>
		<table style="WIDTH: 405pt" cellspacing="0" cellpadding="0" width="540" border="0">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="center">
												<span style="FONT-SIZE: 10pt">键事件</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 370pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="493">
										<div align="center">
												<span style="FONT-SIZE: 10pt">说明</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">keyDown</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 370pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="493">
										<div align="left">
												<span style="FONT-SIZE: 10pt">按下某个键。code 属性包含被按下键的键控代码，ascii 属性包含它的 ASCII 代码。不要使用低级 Key 对象检查，因为 Key 对象可能尚未生成该事件。</span>
										</div>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent">
										<div align="left">
												<span style="FONT-SIZE: 10pt">keyUp</span>
										</div>
								</td>
								<td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 370pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="493">
										<div align="left">
												<span style="FONT-SIZE: 10pt">释放某个键。</span>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/101168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-28 16:49 <a href="http://www.blogjava.net/19851985lili/articles/101168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教程]使用Effect标签实现事件声音效果</title><link>http://www.blogjava.net/19851985lili/articles/101131.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 28 Feb 2007 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101131.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101131.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101131.html</trackback:ping><description><![CDATA[Flex中的按钮音效使用方法和FLASH中不一样了，<br />如何给按钮添加声音效果要用到Effect标签，具体做法如下：<br />新建一个as文件ButtonSound.as 
<p></p><p>class ButtonSound extends mx.effects.Effect<br />{<br />[Embed(mimeType="audio/mpeg",source="Button.mp3")]<br />//注意不要使用wav格式的声音<br />var soundSymbol:String;<br />var s:Sound;<br />public function playEffect():Void<br />{<br />super.playEffect();<br />s = new Sound();<br />s.attachSound(soundSymbol);<br />s.start();<br />}<br />public function endEffect():Void<br />{<br />s.stop();<br />}<br />}</p><p>ButtonSound.as同级目录下新建一个MXML文件，代码如下：</p><p>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" xmlns:local="*" <br />pageTitle="ButtonSound" &gt;</p><p>&lt;!-- 声明音效 --&gt;<br />&lt;mx:Effect&gt;<br />&lt;local:ButtonSound name="ButtonSoundEffect"/&gt;<br />&lt;/mx:Effect&gt;</p><p>&lt;mx:Button label="RIACN" click="getURL('http://www.riacn.com','_blank');" mouseDownEffect="ButtonSoundEffect"/&gt;</p><p>&lt;/mx:Application&gt;</p><p>另外mxml文件的命名要注意，不要用sound作为mxml的名字，否则Flex会认为文件名和内置的Sound对象冲突。<br /><br />&lt;?xml version="1.0" encoding="gb2312"?&gt;<br />&lt;mx:Application xmlns:mx="<a href="http://www.macromedia.com/2003/mxml&quot;&gt;" target="_blank"><font color="#002c99">http://www.macromedia.com/2003/mxml"&gt;</font></a><br />&lt;mx:MediaDisplay id="mp1" contentPath="kissme02.mp3"/&gt;<br />&lt;mx:Canvas&gt;<br />&lt;mx:Button id="s2" label="ｅ路信峰 要 开Sound" click="mp1.play();s2.visible=false;s1.visible=true" <br />fontSize="18"/&gt;<br />&lt;mx:Button id="s1" label="ｅ路信峰 要 关Sound" click="mp1.stop();s1.visible=false;s2.visible=true" <br />fontSize="18"/&gt;<br />&lt;/mx:Canvas&gt;<br />&lt;/mx:Application&gt; <br /><br /><br /></p><img src ="http://www.blogjava.net/19851985lili/aggbug/101131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-28 13:54 <a href="http://www.blogjava.net/19851985lili/articles/101131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DataGrid分页[原创]</title><link>http://www.blogjava.net/19851985lili/articles/101127.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 28 Feb 2007 05:48:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101127.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101127.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101127.html</trackback:ping><description><![CDATA[
		<strong>DataGrid分页[原创]<br /><br /></strong>&lt;?xml version="1.0"?&gt;<br />&lt;mx:Application xmlns:mx="<a href="http://www.macromedia.com/2003/mxml&quot;" target="_blank" backgroundcolor="&quot;#FFFFFF&quot;" creationcomplete="&quot;initApp()&quot;&gt;"><font color="#002c99">http://www.macromedia.com/2003/mxml" backgroundColor="#FFFFFF" creationComplete="initApp()"&gt;</font></a><p></p><p>   &lt;mx:Script&gt;<br />       &lt;![CDATA[<br />                 var pageRecordes:Number;<br />                 var totalPages:Number = 0;<br />                 var totalRows:Number = 0;<br />                 var currentPage:Number = 1;<br />                 var pageStartRow:Number = 1;<br />                 var pageEndRow:Number = 0;<br />                 <br />           public var initDG:Array = [<br />               { Artist: a, Price: 1, Album: one},<br />                       { Artist: b, Price: 2, Album: two},<br />                       { Artist: c, Price: 3, Album: three},<br />                       { Artist: d, Price: 4, Album: four},<br />                       { Artist: e, Price: 5, Album: five},<br />                       { Artist: f, Price: 6, Album: six},<br />                       { Artist: g, Price: 7, Album: seven},<br />               { Artist: h, Price: 8, Album: eight} ];<br />                       <br />                 function initApp(){<br />                       txt.text = "Page " + currentPage;<br />                       pageRecordes = pageConfig.pageRecordes;<br />                       totalRows = initDG.length;<br />                       if(initDG.length &gt; pageRecordes){<br />                             dg.dataProvider = initDG.slice(0,pageRecordes);<br />                             pPage.enabled = false;<br />                       }<br />                       <br />                       if ((totalRows % pageRecordes) == 0) {<br />                             totalPages = Math.floor(totalRows / pageRecordes);<br />                       } else {<br />                             totalPages = Math.floor(totalRows / pageRecordes + 1);<br />                       }<br />                       <br />                       if (totalRows &lt;= pageRecordes) {<br />                             this.pageStartRow = 1;<br />                             this.pageEndRow = totalRows;<br />                       } else {<br />                             this.pageStartRow = 1;<br />                             this.pageEndRow = pageRecordes;<br />                       }<br />                       <br />                       if(totalPages == 1){<br />                             pPage.enabled = false;<br />                             nPage.enabled = false;<br />                       }<br />                 }<br />           <br />                 function showPreviousPage(){<br />                       currentPage = currentPage - 1;<br />                       txt.text = "Page " + currentPage;<br />                       if(currentPage == 1){<br />                             pPage.enabled = false;<br />                             nPage.enabled = true;<br />                       }else{<br />                             pPage.enabled = true;<br />                             nPage.enabled = true;<br />                       }<br />                       if (currentPage == totalPages) {<br />                             pageStartRow = (currentPage - 1) * pageRecordes + 1;<br />                             pageEndRow = totalRows;<br />                       } else {<br />                             pageStartRow = (currentPage - 1) * pageRecordes + 1;<br />                             pageEndRow = currentPage * pageRecordes;<br />                       }<br />                       dg.dataProvider = initDG.slice(pageStartRow - 1,pageEndRow);<br />                 }<br />                 <br />                 function showNextPage(){<br />                       currentPage = currentPage + 1;<br />                       txt.text = "Page " + currentPage;<br />                       if(currentPage == totalPages){<br />                             nPage.enabled = false;<br />                             pPage.enabled = true;<br />                       }else{<br />                             nPage.enabled = true;<br />                             pPage.enabled = true;<br />                       }<br />                       if (currentPage == totalPages) {<br />                             pageStartRow = (currentPage - 1) * pageRecordes + 1;<br />                             pageEndRow = totalRows;<br />                       } else {<br />                             pageStartRow = (currentPage - 1) * pageRecordes + 1;<br />                             pageEndRow = currentPage * pageRecordes;<br />                       }<br />                       dg.dataProvider = initDG.slice(pageStartRow - 1,pageEndRow);<br />                 }<br />                 <br />       ]]&gt;<br />   &lt;/mx:Script&gt;<br />     <br />     &lt;mx:Model id="pageConfig" source="WEB-INF/classes/pageConfig.xml"/&gt;<br />   &lt;mx:Panel title="DataGrid Panel" marginTop="10" height="100%" width="100%"&gt;</p><p>       &lt;mx:DataGrid id="dg" dataProvider="{initDG}" height="100%" width="100%" /&gt;<br />           &lt;mx:HBox&gt;<br />                 &lt;mx:Button id="pPage" label="prevPage" click="showPreviousPage()"&gt;&lt;/mx:Button&gt;<br />                 &lt;mx:Text id="txt"&gt;&lt;/mx:Text&gt;<br />                 &lt;mx:Button id="nPage" label="nextPage" click="showNextPage()"&gt;&lt;/mx:Button&gt;<br />           &lt;/mx:HBox&gt;</p><p>   &lt;/mx:Panel&gt;</p><p>&lt;/mx:Application&gt;</p><p>还有一个配置的xml文件，路径是：...WEB-INF/classes/pageConfig.xml<br />该xml文件内容如下：<br />&lt;?xml version="1.0" encoding="shift_jis"?&gt;<br />&lt;web-app&gt;<br />     &lt;pageRecordes&gt;3&lt;/pageRecordes&gt;<br />&lt;/web-app&gt;<br /></p><img src ="http://www.blogjava.net/19851985lili/aggbug/101127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-28 13:48 <a href="http://www.blogjava.net/19851985lili/articles/101127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex Remote Object中直接使用HttpSession的方法</title><link>http://www.blogjava.net/19851985lili/articles/101125.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 28 Feb 2007 05:38:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/101125.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/101125.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/101125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/101125.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/101125.html</trackback:ping><description><![CDATA[
		<strong>Flex Remote Object中直接使用HttpSession的方法<br /><br />问题的背景</strong>
		<br />Flex Remote Object可以是POJO,JavaBean或是EJB。在面向服务的架构中(Service Oriented Architecture),我们可以用Remote Object来作为Service Facade，利用应用服务器提供的persistent service来储存状态信息。 
<p></p><p>Flex既可以提供stateful或stateless的remote object, 另外还有session servlet让mxml获取/和储存session中的内容。这一切听上去都很完美，但是有一个问题，<i>Flex Remote Object本身是无法获得任何有关Running Context的信息，也就是说，你无法从你的 Remote Object 中获得 HttpSession, HttpRequest 和 ServletContext。</i> 所谓的 Flex Session servlet只是让MXML获得session的内容，而不是直接让Remote Object获得session。</p><p><b>Remote Object为什么需要获得HttpRequest, HttpSession?</b><br />既然Flex提供了stateful的remote object为什么还要让remote object获得Running Context呢？问题在于Flex中的stateful是基于应用服务器的http session，而且你无法控制AMFGateway建立remote object的过程。打个简单的比方，我们知道一般的应用服务器中，session的时限只有20分钟，而在很多系统的登陆过程中却有选择保持登陆几个月的选项。</p><p>其具体实现上就是利用cookie来储存id和password hash，通过控制cookie的存活时间来实现的。而在服务器端，一旦session过期了，则可以从cookie中获得id和password hash重新登陆一遍，从而达到自动认证用户的目的。</p><p>如果你的Remote Object无法获得 HttpServletRequest, HttpSession，你就无法实现上述的情况。另外，对于小型的应用来说，直接在Remote object中获得servlet context并利用它来储存/获得共享的资源，可以大大降低开发的复杂程度。</p><p><b>解决方案</b><br />要让Remote Object获得HttpSession,HttpRequest和ServletContext并不是一件容易的事情。这里提供了我的一种方法，供大家参考。希望能抛砖引玉，让大家提出更好，更有效的方案。</p><p>这个方法的基本思路是利用JAVA提供的 <b>ThreadLocal Object</b>。当服务器接收到一个HTTP请求后，这个请求的整个处理过程是运行在同一个线程中的。</p><p>每个HTTP请求的处理会都运行在各自独立的线程中。而在Flex中，所有AMF Remote Object 的请求都需要通过 AMF Gateway Servlet，而Remote Object 的建立和调用恰恰就是运行在这个HTTP请求的线程中。</p><p>有了这个原则，我们就可以建立一个Context Object,每当请求建立的时候，就可以把这个请求放入 Context 的 ThreadLocal 中，而当 Remote Object 被AMF Gateway Servlet调用的时候，就可以通过访问 Context 的ThreadLoca l来获得其所对应的那个请求。</p><p>而截获发送到AMF Gateway的请求则可以通过Servlet Filter来实现。废话不说了，看代码吧！</p><p><br /></p><table cellspacing="1" cellpadding="4"><tbody><tr><td class="code"><br /><b>1. 添加以下内容到WEB-INF/web.xml中</b><p></p><p> &lt;filter&gt;<br />    &lt;filter-name&gt;AMFSessionFilter &lt;/filter-name&gt;<br />    &lt;filter-class&gt;com.netop.forum.servlets.AMFSessionFilter &lt;/filter-class&gt;<br />  &lt;filter&gt;</p><p>  &lt;filter-mapping&gt;<br />    &lt;filter-name&gt;AMFSessionFilter &lt;/filter-name&gt;<br />    &lt;servlet-name&gt;AMFGatewayServlet &lt;/servlet-name&gt;<br />  &lt;filter-mapping&gt;      </p><p><br /><b>2. AMFSessionFilter的代码</b></p><p>/*<br />* Created on 1/07/2004 <br />*/<br />package com.netop.forum.servlets;</p><p><br />import java.io.IOException;<br />import javax.servlet.Filter;<br />import javax.servlet.FilterChain;<br />import javax.servlet.FilterConfig;<br />import javax.servlet.ServletException;<br />import javax.servlet.ServletRequest;<br />import javax.servlet.ServletResponse;<br />import javax.servlet.http.*;</p><p>import org.apache.commons.logging.Log;<br />import org.apache.commons.logging.LogFactory;</p><p>/**<br />* @author Zombie<br />* @version 0.5<br />*/</p><p>public class AMFSessionFilter implements Filter<br />{<br />     private static Log log = LogFactory.getLog(AMFSessionFilter.class);<br />     <br />     public void init(FilterConfig config)<br />     {            <br />           log.info("Init AMFSessionFilter filter");<br />     }<br />     <br />     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException,IOException<br />     {                  <br />           AMFContext.setCurrentContext((HttpServletRequest)request, (HttpServletResponse)response);            <br />           chain.doFilter(request,response);            <br />     }<br />     <br />     public void destroy()<br />     {<br />           log.info("Destory AMFSessionFilter filter");<br />     } <br />}</p><p></p><p><br /><b>3. AMFContext的代码</b></p><p>/*<br />* Created on 1/07/2004 <br />*/<br />package com.netop.forum.servlets;</p><p><br />import javax.servlet.*;<br />import javax.servlet.http.*;<br />import com.netop.forum.business.*;</p><p>import org.apache.commons.logging.Log;<br />import org.apache.commons.logging.LogFactory;</p><p>/**<br />* @author Zombie<br />* @version 0.5<br />*/<br />public class AMFContext<br />{      <br />     <br />     /**<br />      * Context Attribute key for the connection the factory<br />      */<br />     public final static String CONNECTION_FACTORY_KEY = "sqlMapFactory";      </p><p>     /**<br />      * The log<br />      */<br />     private static Log log = LogFactory.getLog(AMFContext.class);      </p><p>     /**<br />      * ThreadLocal object for storing object in current thread.<br />      */<br />     private static ThreadLocal tl = new ThreadLocal();<br />     <br />     /**<br />      * Set current context<br />      * <br />      * @param request The HttpRequest object<br />      * @param response The HttpResponses object<br />      */<br />     static public void setCurrentContext(HttpServletRequest request, HttpServletResponse response)<br />     {<br />           AMFContext c = getCurrentContext();<br />           if (c == null)<br />           {<br />                 c = new AMFContext(request,response);<br />                 tl.set(c);<br />           }<br />           else<br />           {<br />                 c.setRequest(request);<br />                 c.setResponse(response);<br />           }            <br />     }<br />     <br />     /**<br />      * Get current context value<br />      * @return The current context<br />      */<br />     static public AMFContext getCurrentContext()<br />     {<br />           return (AMFContext)tl.get();<br />     }<br />     <br />     <br />     <br />     <br />     <br />     //----------------------------------------------------------<br />     //<br />     // Class members<br />     //<br />     //----------------------------------------------------------<br />     <br />     /**<br />      * The http request object. The lifecycle of the request object is defined as the request <br />      * scope. It may be reused in another incoming connection, so dont use it in another thread.<br />      */<br />     private HttpServletRequest request;<br />     <br />     /**<br />      * The http response object. The lifecycle of the response object is defined as the request <br />      * scope. Dont use it in another thread. Also dont write output to the response when it is<br />      * used in the context, but you may get or set some response header when it is safe.<br />      */<br />     private  HttpServletResponse response;<br />     <br />     <br />     /**<br />      * The constructor is private, to get an instance of the AMFContext, please use <br />      * getCurrentContext() method.<br />      * <br />      * @param request<br />      * @param response<br />      */<br />     private AMFContext (HttpServletRequest request, HttpServletResponse response)<br />     {<br />           this.request = request;<br />           this.response = response;<br />     }<br />     <br />     <br />     /**<br />      * Get request object<br />      * <br />      * @return Http request object<br />      */<br />     public HttpServletRequest getRequest()<br />     {<br />           return request;<br />     }</p><p>     /**<br />      * Set request object <br />      * <br />      * @param Http request object<br />      */<br />     public void setRequest(HttpServletRequest request)<br />     {<br />           this.request = request;<br />     }</p><p>     /**<br />      * Get response object<br />      * <br />      * @return Http response object<br />      */<br />     public HttpServletResponse getResponse()<br />     {<br />           return response;<br />     }</p><p>     /**<br />      * Set response object<br />      * <br />      * @param response Http response object<br />      */<br />     public void setResponse(HttpServletResponse response)<br />     {<br />           this.response = response;<br />     }      <br />     <br />     /**<br />      * Get the servlet context<br />      * @return<br />      */<br />     public ServletContext getServletContext()<br />     {<br />           HttpSession session = this.getSession();<br />           return session.getServletContext();<br />     }<br />     <br />     /**<br />      * Get the current running session<br />      * @return<br />      */<br />     public HttpSession getSession()<br />     {<br />           return request.getSession();<br />     }<br />     <br />     <br />     /**<br />      * Get an object stored in the session.<br />      * <br />      * @param attr Attribute Name<br />      * @return The value stored under the attribute name.<br />      */<br />     public Object getSessionAttribute(String attr)<br />     {<br />           HttpSession session = this.getSession();<br />           return session.getAttribute(attr);<br />     }<br />     <br />     /**<br />      * Store an object in the session.<br />      * <br />      * @param attr Attribute Name<br />      * @param value The value.<br />      */<br />     public void setSessionAttribute(String attr, Object value)<br />     {<br />           HttpSession session = this.getSession();<br />           session.setAttribute(attr, value);<br />     }<br />     <br />     /**<br />      * Get an object stored in the servlet context.<br />      * <br />      * @param attr Attribute Name<br />      * @return The value stored under the attribute name.<br />      */<br />     public Object getContextAttribute(String attr)<br />     {<br />           ServletContext sc = this.getServletContext();<br />           return sc.getAttribute(attr);<br />     }<br />     <br />     /**<br />      * Store an object in the servlet context.<br />      * <br />      * @param attr Attribute Name<br />      * @param value The value.<br />      */<br />     public void setContextAttribute(String attr, Object value)<br />     {<br />           ServletContext sc = this.getServletContext();<br />           sc.setAttribute(attr,value);<br />     }<br />     <br />     /**<br />      * Get an object stored in the current request.<br />      * <br />      * @param attr Attribute Name<br />      * @return The value stored under the attribute name.<br />      */<br />     public Object getRequestAttribute(String attr)<br />     {<br />           return request.getAttribute(attr);<br />     }      <br />     <br />     /**<br />      * Store an object in the current request.<br />      * <br />      * @param attr Attribute Name<br />      * @param value The value.<br />      */<br />     public void setRequestAttribute(String attr, Object value)<br />     {<br />           request.setAttribute(attr,value);<br />     }</p><p>     <br />     /**<br />      * Get the connection factory from the servlet context. The connection factory is in the <br />      * application scope.<br />      * <br />      * @return The connection factory for creating sqlMap objects.<br />      */<br />     public ConnectionFactory getConnectionFactory()<br />     {<br />           ConnectionFactory factory =(ConnectionFactory)this.getContextAttribute(CONNECTION_FACTORY_KEY);            <br />           if (factory == null)<br />           {<br />                 try<br />                 {<br />                       factory = new ConnectionFactory();<br />                       //      factory is lazy instantiated, so we need to invoke it once to make sure it is ok.<br />                       factory.getSqlMap(); <br />                       this.setContextAttribute(CONNECTION_FACTORY_KEY, factory);                        <br />                 }<br />                 catch (Throwable e)<br />                 {<br />                       log.fatal("Can not create connection factory: "+e.getMessage(), e);                        <br />                 }<br />           }            <br />           return factory;            <br />     }<br />     <br />}</p><p></p><p><b>4. 如何在remote object中使用AMFContext</b></p><p><br />class YouRemoteService<br />{<br /> public void serviceMethod()<br /> {<br />   AMFContext context = AMFContext.getCurrentContext();<br />   HttpSession = context.getSession();<br />   ServletContext = context.getServletContext();</p><p>   HttpServletRequest request = context.getRequest();<br />   HttpServletResponse response = context.getResponse();</p><p>   context.setSessionAttribute("attr","value");<br />   context.setContextAttribute("attr","value");</p><p> }<br />}<br /></p></td></tr></tbody></table><img src ="http://www.blogjava.net/19851985lili/aggbug/101125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-28 13:38 <a href="http://www.blogjava.net/19851985lili/articles/101125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在 DataGrid 中分页显示记录</title><link>http://www.blogjava.net/19851985lili/articles/100450.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 24 Feb 2007 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/100450.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/100450.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/100450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/100450.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/100450.html</trackback:ping><description><![CDATA[&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application xmlns:mx="<a href="http://www.adobe.com/2006/mxml" target="_blank">http://www.adobe.com/2006/mxml</a>" layout="vertical" creationComplete="initVars()" viewSourceURL="srcview/index.html"&gt;<br /><br />&lt;mx:Script&gt;<br />        &lt;![CDATA[<br />            import mx.rpc.events.ResultEvent;<br />            import mx.controls.Alert;<br />            import mx.collections.ArrayCollection;<br />            <br />        //holds all the records in the query returned by the CFC function     <br />        private var submissionsAllAryCol:ArrayCollection;<br />        <br />        //holds all the records in an Array<br />        //so we can use Array methods to <br />        //get a subset of the records for paging<br />        private var submissionsAllAry:Array;<br />        <br />        //The subset of the records for the current page<br />        private var submissionsSlicedAry:Array;<br />        <br />        //The subset of the records in the ArrayCollection<br />        //that is the dataprovider for the datagrid<br />        [Bindable]<br />        private var submissionsViewAryCol:ArrayCollection;<br />        <br />        [Bindable]<br />        private var start:int; //what record to start with on the current page<br />        <br />        private var increment:int ; //how many records to show per page<br />        <br />        [Bindable]<br />        private var end:int ; //what record (end-1) to end with on the current page<br />        <br />        [Bindable]<br />        private var total:int ; //how many total records<br />        <br />        <br />      <br />        <br />        // initialize the variables and get all submissions<br />        private function initVars():void {<br />            <br />            //initial start and end positions for slicing the Array<br />            start = 0;<br />            increment = 10; //how many records to display<br />            end = 0;<br />                    <br />           //Call the CFC method to get the submissions        <br />           myService.getAllSubmissions(139);<br />        <br />        }  //end function initVars()    <br />            <br />         /*Handles the result returned by calling the getAllSubmissions method<br />            of the CFC<br />            */<br />            public function handleQueryResult(event:ResultEvent):void{<br />                <br />                //place the query results into an ArrayCollection<br />                submissionsAllAryCol = event.result as ArrayCollection;<br />                <br />                //convert ArrayCollection to a standard Array<br />                //so we can use Array slice function<br />                submissionsAllAry = submissionsAllAryCol.toArray();<br />                <br />                //how many total submissions?<br />                total = submissionsAllAry.length;<br />                <br />                //determine initial value for end (cannot exceed total)<br />                <br />                if ( total &lt; increment) {<br />                    <br />                    end = total;<br />                    <br />                } else {<br />                    <br />                    end = increment ;<br />                    <br />                }//end if<br />                <br />                <br />                //take out of the array records start to end (includes records from start to end-1)<br />                submissionsSlicedAry = submissionsAllAry.slice(start, end);<br />                <br />                //Create an ArrayCollection using the subset of our Array<br />                //and assign it to the data provider for the datagrid<br />                submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );<br />                <br />                //determine if Next button should be enabled<br />                //as its possible that the number or records returned<br />                //is less than our number per page (increment)<br />                nextBtn.enabled = isNextBtnEnabled();<br />                <br />                    <br />            } //end function<br />                <br />            /*Get the next increment of records for display in the datagrid<br />            */<br />            private function getNext():void {<br />                <br />                //going forward so <br />                //increase start and end by the increment<br />                <br />                start = start + increment ;<br />                end = end + increment ;<br />                <br />                //don't let the value of end be larger than the<br />                //total number of records<br />                if (end &gt; total) {<br />                    <br />                    end = total;<br />                    <br />                }<br />                <br />                //create a subset of the Array that is holding all the submissions<br />                submissionsSlicedAry = submissionsAllAry.slice(start, end);<br />                <br />                //update the dataprovider for the datagrid<br />                submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );<br />                <br />                //determine if Next button should be enabled<br />                <br />                nextBtn.enabled = isNextBtnEnabled();<br />                <br />                //enable previous button<br />                //since we have gone to a next page of records<br />                previousBtn.enabled = true;<br />                <br />                <br />            }//end getNext<br />            <br />           <br />           /*Get the previous increment of records for display in the datagrid<br />           */<br />           private function getPrevious():void {<br />               <br />                 <br />                   //going backwards<br />                   end = start;<br />                <br />                //decrease start by the increment<br />                <br />                start = start - increment ;<br />                <br />                //create a subset of the Array that is holding all the submissions<br />                submissionsSlicedAry = submissionsAllAry.slice(start, end);<br />                <br />                //update the dataprovider for the datagrid<br />                submissionsViewAryCol = new ArrayCollection( submissionsSlicedAry );<br />                <br />                //determine if previous button should be enabled<br />                previousBtn.enabled = isPreviousBtnEnabled();<br />                <br />                //enable next button<br />                //since we have gone to a previous page of records<br />                nextBtn.enabled = true;<br />                <br />                <br />            }//end getPrevious<br />            <br />            /*Return true if button should be enabled<br />            */<br />            private function isNextBtnEnabled():Boolean {<br />                <br />                var enableBtn:Boolean = false ;<br />                <br />                if ( end &lt; total ) {<br />                    <br />                    enableBtn = true ;<br />                    <br />                }<br />                <br />                return enableBtn;<br />            <br />                <br />            }//end function isNextBtnEnabled<br />            <br />            <br />            /*Return true if button should be enabled<br />            */<br />            <br />            private function isPreviousBtnEnabled():Boolean {<br />                <br />                var enableBtn:Boolean = false ;<br />                <br />                if ( start &gt;= increment ) {<br />                    <br />                    enableBtn = true ;<br />                    <br />                }<br />                <br />                return enableBtn;<br />                <br />                <br />                <br />            }//end function isNextBtnEnabled<br />            <br />            <br />        ]]&gt;<br />&lt;/mx:Script&gt;            <br />            <br />    &lt;!--setup connection to the CFC--&gt;<br />    &lt;mx:RemoteObject<br />        id="myService"<br />        destination="ColdFusion"<br />        source="flex.pagingdatagrid.SubmissionsGateway" <br />        showBusyCursor="true"<br />        &gt;  <br />            &lt;mx:method name="getAllSubmissions" result="handleQueryResult(event)" <br />            fault="Alert.show(event.fault.message)"/&gt;<br />                <br />    &lt;/mx:RemoteObject&gt; <br />    <br />    &lt;!--setup user interface--&gt;<br />    &lt;mx:Panel width="80%" height="80%" layout="vertical" title="Page Through The Submissions" <br />        horizontalAlign="center" verticalAlign="top"&gt;<br />        <br />        &lt;mx:VBox width="100%" height="100%" verticalAlign="top" horizontalAlign="left"&gt;<br />        <br />        &lt;mx:Label text="Use the Previous and Next buttons to Get More Submissions"/&gt;<br />        <br />        &lt;mx:HBox width="100%"&gt;<br />            <br />            &lt;!--this button's enable value will be changed by the getPrevious() and getNext functions--&gt;<br />            &lt;mx:Button label="Previous" id="previousBtn" enabled="false" <br />                click="getPrevious()"/&gt;<br />                <br />            &lt;mx:Spacer width="50%"/&gt;<br />            <br />            &lt;!--must use start+1 since array elements start at array position 0--&gt;<br />            &lt;mx:Label text="Viewing Submissions {start+1} - {end} of {total} Submissions" /&gt;<br />            <br />            &lt;mx:Spacer width="50%"/&gt;<br />            <br />             &lt;!--this button's enable value will be changed by the getPrevious() and getNext functions--&gt;<br />            &lt;mx:Button label="Next" id="nextBtn" enabled="true"<br />                click="getNext()"/&gt;<br />            <br />        &lt;/mx:HBox&gt;<br />        <br />        &lt;!--The dataProvider will be updated each time the user clicks the next and previous buttons--&gt;    <br />        &lt;mx:DataGrid width="100%" height="100%" id="submissionsDG" dataProvider="{submissionsViewAryCol}" <br />            fontFamily="Verdana" fontSize="10"&gt;<br />            &lt;mx:columns&gt;<br />                &lt;mx:DataGridColumn dataField="submissionid" width="80" headerText="Sub #"/&gt;<br />            <br />                &lt;mx:DataGridColumn dataField="presenter" width="100" headerText="Main Presenter" /&gt;<br />                <br />                &lt;mx:DataGridColumn dataField="title" width="220" headerText="Title" wordWrap="true"/&gt;<br />            &lt;/mx:columns&gt;<br />        &lt;/mx:DataGrid&gt;<br />            <br />        &lt;/mx:VBox&gt;<br />        <br />    &lt;/mx:Panel&gt;<br /><br />   &lt;!--setup user interface--&gt;<br />&lt;/mx:Application&gt;<img src ="http://www.blogjava.net/19851985lili/aggbug/100450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-24 09:10 <a href="http://www.blogjava.net/19851985lili/articles/100450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ActionScript 3.0</title><link>http://www.blogjava.net/19851985lili/articles/99119.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 10 Feb 2007 05:09:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/99119.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/99119.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/99119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/99119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/99119.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td width="24">
								</td>
								<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td>一个简单的ActionScript 3 Iterator实现</td>
														</tr>
												</tbody>
										</table>
								</td>
								<td width="15">
										<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
								</td>
						</tr>
				</tbody>
		</table>
		<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
				<tbody>
						<tr>
								<td bgcolor="#ffffff">
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td>
																		<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																</td>
																<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																		<p>
																		</p>
																		<div class="c_t">
																				<div class="post-content">
																						<p class="zh_p">
																								<a href="http://www.darronschall.com/weblog/archives/000231.cfm" target="_blank" hreflang="en">
																										<strong>
																												<font color="#006f93">darron schall</font>
																										</strong>
																								</a>发布了一个As3 Iterator的实现，你可以点击<a href="http://www.darronschall.com/downloads/as3_iterator.zip" target="_blank"><strong><font color="#006f93">这里</font></strong></a>下载，该组件的用法非常简单，下载的压缩包包括一个Iterator接口和一个范例的Array Iterator实现，以下是使用范例：</p>
																						<pre>import com.darronschall.util.*;
var arr:Array = [1, 2, 3];
var it:Iterator = new ArrayIterator( arr );
while ( it.hasNext() )
{
	trace( it.next() );  // 1, 2, 3
}

var it2:Iterator = new ArrayIterator( null );
trace( it2.hasNext() ); // false
</pre>
																				</div>
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
																		<table cellspacing="0" cellpadding="0" width="100%" border="0">
																				<tbody>
																						<tr>
																								<td>ActionScript 3 : 通过类名称获取类引用</td>
																						</tr>
																				</tbody>
																		</table>
																</td>
																<td width="15">
																		<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
												<tbody>
														<tr>
																<td bgcolor="#ffffff">
																		<table cellspacing="0" cellpadding="0" width="100%" border="0">
																				<tbody>
																						<tr>
																								<td>
																										<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																								</td>
																								<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																										<p>
																										</p>
																										<div class="c_t">
																												<div class="post-content">
																														<p class="zh_p">在ActionScript 3中如果我们只知道类名称但又想获得一个类的引用的话，那么我们可以使用flash.utils.getDefinitionByNam创建一个类的实例。</p>
																														<p class="zh_p">例如：</p>
																														<p>
																														</p>
																														<pre>package
{
  import flash.display.Sprite;
  import flash.utils.getDefinitionByName;

  public class DynamicCall extends Sprite
  {
    public function DynamicCall()
    {
           var ClassReference:Class = getDefinitionByName("String") as Class;
           var s:String = (new ClassReference("foo=") as String);
           trace(s);
    }
  }
}
</pre>
																														<p>
																														</p>
																														<p class="zh_p">以上代码根据类名称“String”创建一个String类的实例，getDefinitionByName需要完整类路径，所以如果我们想创建MovieClip的实例的话，我们需要提供完整的类路径：</p>
																														<pre>           var ClassReference:Class = getDefinitionByName("flash.display.MovieClip") as Class;</pre>
																														<p class="zh_p">这样的方法虽然有些旁门左道，但却非常有用！</p>
																												</div>
																										</div>
																								</td>
																						</tr>
																				</tbody>
																		</table>
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td width="24">
																</td>
																<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
																		<table cellspacing="0" cellpadding="0" width="100%" border="0">
																				<tbody>
																						<tr>
																								<td>Flex2:在Excel与Flex之间粘贴数据</td>
																						</tr>
																				</tbody>
																		</table>
																</td>
																<td width="15">
																		<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
																</td>
														</tr>
												</tbody>
										</table>
										<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
												<tbody>
														<tr>
																<td bgcolor="#ffffff">
																		<table cellspacing="0" cellpadding="0" width="100%" border="0">
																				<tbody>
																						<tr>
																								<td>
																										<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																								</td>
																								<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																										<p>
																										</p>
																										<div class="c_t">
																												<div class="post-content" twffan="done">
																														<p class="zh_p">试用过<a href="http://spreadsheets.google.com/" target="_blank" hreflang="en"><strong><font color="#006f93">Google Spreadsheets</font></strong></a>的朋友，可能发现其一个有意思的特性，我们可以直接将Excel中的多行数据直接复制插入到Google Spreadsheets中（OpenOffice也可以直接复制过去），没尝试过的朋友可以马上按如下步骤测试下：</p>
																														<p class="zh_p">在Excel（或OpenOffice Calc）中选择多行数据，敲Ctrl+C键，复制选择的多行数据：</p>
																														<p class="zh_p">
																																<img alt="" src="http://blog.eshangrao.com/images/prg/flex/flex_excel_1.gif" twffan="done" />
																														</p>
																														<p class="zh_p">然后到Google Spreadsheets，敲Ctrl+V键，前面复制的单元格就被复制过来了：</p>
																														<p class="zh_p">
																																<img alt="" src="http://blog.eshangrao.com/images/prg/flex/flex_excel_2.gif" twffan="done" />
																														</p>
																														<p class="zh_p">这是如何做到的呢？其实很简单，在Excel（OpenOffice Calc)中，当多个单元格被复制时，这些单元格的数据是以tab键分隔一行行数据（tab-separated values (TSV)）存放在剪贴板中的，当这些数据被粘贴到Google Spreadsheets中时，这些TSV格式的数据被解析并被相应插入到Google Spreadssheets中了。</p>
																														<p class="zh_p">既然知道其中的奥妙，那么剩下的就是在Flex中实现同样的效果了。以下是我们的实现思路，可以在Excel和Flex相互直接复制粘贴数据。</p>
																														<p class="zh_p">我们的思路的精妙所在是隐藏文本（TextField）组件的使用：</p>
																														<ol>
																																<li>在DataGrid中，当按下Ctrl键时，我们创建一个隐藏的文本（TextField）组件，并将焦点定位给它，这样，我们就可以接受任何通过Ctrl+V粘贴过来的数据。相应的我们也将DataGrid选择行数据以TSV格式拷贝到TextField组件中，并且将所有的文本选择，这样我们使用Ctrl+C操作就可以复制当前行所有数据了。 
</li>
																																<li>监听隐藏文件组件的textInput事件。如果有任何数据被粘贴的话，那么在这里数据将被解析，并插入到DataGrid中。 
</li>
																																<li>当Ctrl键释放后，移除隐藏的文本组件。 </li>
																														</ol>
																														<p class="zh_p">以下是完整实现示例代码：</p>
																														<p>
																														</p>
																														<pre>&lt;?xml version="1.0"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"&gt;
   &lt;mx:Script&gt;
       &lt;![CDATA[
   import flash.events.KeyboardEvent;

   private function dataGridKeyDownHandler(event:KeyboardEvent):void
   {
     if (event.ctrlKey &amp;&amp; !dataGrid.getChildByName("clipboardProxy"))
     {
       // Add an invisible TextField object to the DataGrid
       var textField:TextField = new TextField();
       textField.name = "clipboardProxy";
       dataGrid.addChild(textField);
       textField.visible = false;

       textField.type = TextFieldType.INPUT;
       textField.multiline = true;

       // Populate the TextField with selected data in TSV format

       textField.text = getTextFromItems(dataGrid.selectedItems);
       textField.setSelection(0, textField.text.length - 1);

       // Listen for textInput event

       textField.addEventListener(TextEvent.TEXT_INPUT,
           clipboardProxyPasteHandler);

       // Set player-level focus to the TextField

       systemManager.stage.focus = textField;
     }
   }


   private function dataGridKeyUpHandler(event:KeyboardEvent):void
   {
     if (!event.ctrlKey)
     {
       var textField:TextField = TextField(dataGrid
           .getChildByName("clipboardProxy"));
       if (textField)
         dataGrid.removeChild(textField);
     }
   }

   private function clipboardProxyPasteHandler(event:TextEvent):void
   {
     // Extract values from TSV format and populate the DataGrid

     var items:Array = getItemsFromText(event.text);
     for each (var item:Object in items)
       dataGrid.dataProvider.addItem(item);
   }

   private function getItemsFromText(text:String):Array
   {
     var rows:Array = text.split("\n");
     if (!rows[rows.length - 1])
       rows.pop();

     var columns:Array = dataGrid.columns;
     var itemsFromText:Array = [];

     for each (var rw:String in rows)
     {
       var fields:Array = rw.split("\t");

       var n:int = Math.min(columns.length, fields.length);
       var item:Object = {};
       for (var i:int = 0; i &lt; n; i++)
         item[columns[i].dataField] = fields[i];
       itemsFromText.push(item);
     }

     return itemsFromText;  
   }

   private function getTextFromItems(items:Array):String
   {
     var columns:Array = dataGrid.columns;
     var textFromItems:String = "";

     for each (var it:Object in items)
     {
       for each (var c:DataGridColumn in columns)
         textFromItems += it[c.dataField] + "\t";
       textFromItems += "\n";
     }

     return textFromItems;
   }
   ]]&gt;
   &lt;/mx:Script&gt;
   
   &lt;mx:DataGrid id="dataGrid" editable="true"
       keyDown="dataGridKeyDownHandler(event)"
       keyUp="dataGridKeyUpHandler(event)"&gt;
       &lt;mx:columns&gt;
           &lt;mx:DataGridColumn headerText="Scheduled Date"
               dataField="scheduledDate" /&gt;
           &lt;mx:DataGridColumn headerText="Home Team"
               dataField="homeTeam" /&gt;
           &lt;mx:DataGridColumn headerText="Away Team"
               dataField="awayTeam" /&gt;
           &lt;mx:DataGridColumn headerText="Field"
               dataField="field" /&gt;
       &lt;/mx:columns&gt;
       &lt;mx:dataProvider&gt;
           &lt;mx:Object scheduledDate="4/1/2006" homeTeam="Chester Bucks"
               awayTeam="Long Valley Hitters" field="Dawn Field" /&gt;
       &lt;/mx:dataProvider&gt;
   &lt;/mx:DataGrid&gt;
&lt;/mx:Application&gt;
</pre>
																														<p>
																														</p>
																														<p class="zh_p">
																																<a href="http://eshangrao.googlepages.com/ExcelCopySampleApp.swf" target="_blank">
																																		<strong>
																																				<font color="#006f93">运行实例(FlashPlayer9.0)</font>
																																		</strong>
																																</a>
																														</p>
																														<p class="zh_p">以下是最终实现的效果图：</p>
																														<p class="zh_p">
																																<img alt="" src="http://blog.eshangrao.com/images/prg/flex/flex_excel_3.gif" twffan="done" />
																														</p>
																														<p class="zh_p">原文：<a href="http://mannu.livejournal.com/348299.html" target="_blank" hreflang="en"><strong><font color="#006f93">Copy 'n paste between Excel and Flex</font></strong></a></p>
																												</div>
																										</div>
																								</td>
																						</tr>
																				</tbody>
																		</table>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
		<strong>
				<font size="2">
						<font face="Arial">
								<span class="smalltxt" twffan="done">
										<span class="bold" twffan="done">Flex 2 中文资源 swc 文件</span>
								</span>
								<br />
								<br />
						</font>
				</font>
		</strong>
		<span style="FONT-SIZE: 12px" twffan="done">Flex 2 是严重向 Java 看齐，本地化也是与Java类似。<br />这里不想去探讨 ResourceBundle 类和 Locale 类的问题，而仅仅是针对 ${FRAMEWORKS}/locale 下的 en_US 的汉化，以及 compc 命令的一些使用方法。<br /><br />在${FRAMEWORKS}（一般是 C:\Program Files\Adobe\Flex Builder 2\Flex SDK 2\frameworks）下有一个 locale 文件夹，其中默认只有一个 en_US 文件夹，里面存放的是英语的资源文件，有若干个 .properties 文件和几个 .swc 文件，.properties 文件相当于源代码，.swc 相当于库，通过 compc 命令可以进行编译。framework_rb.swc 中的内容包括日期、验证提示消息、货币符号，一些出错报告，等等内容，大家可以看下。需要说明的一点 .properties 文件中不能使用引号。<br /><br />我所做的就是将 en_US 文件夹复制下，改名为 zh_CN，然后修改每个 .properties 文件的内容，然后编译成 .swc 文件。重点是修改 validators.properties 文件，因为这里的很多提示是给最终用户看的，比如邮件地址写错了，会有一个提示，必须是中文的。需要注意的是，修改后，要将文件编码格式改为 UTF-8，否则会有乱码。其他文件更多的是给 coder 自己看的，我就没去详细的翻译:P<br /><br />修改之后就是编译了，开始-&gt;运行-&gt;cmd<br />命令行下输入：<br />cd C:\Program Files\Adobe\Flex Builder 2<br /><br />FlexFrameworkCmdPrompt.bat "C:\Program Files\Adobe\Flex Builder 2\Flex SDK 2" "C:\Program Files\Adobe\Flex Builder 2\jre"<br /><br />compc -locale zh_CN -source-path "Flex SDK 2/frameworks/locale/{locale}" -include-resource-bundles collections controls core effects formatters logging SharedResources skins states validators -output "Flex SDK 2/frameworks/locale/zh_CN/framework_rb.swc"<br /><br />这样就会在 ${FRAMEWORKS}/locale/zh_CN 下生成 framework_rb.swc，也就是我们所需要的本地化资源文件，以后只要在建立 project 之后，打开工程属性窗口，定位到 Flex Complier，右边的 additional complier arguments 的内容改为 -locale zh_CN，即可使用中文本地化资源了。<br /><img onmousewheel="return imgzoom(this);" onmouseover="if(this.width&gt;screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www.xinhuaedu.cn/resserver.php?blogId=5&amp;resource=zh_CN_screenshot1.JPG');}" src="http://www.xinhuaedu.cn/resserver.php?blogId=5&amp;resource=zh_CN_screenshot1.JPG" onload="if(this.width&gt;screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border="0" twffan="done" /><br /><br />下载地址：<a href="http://www.xinhuaedu.cn/site/slobber/flex_2_zh_cn_locale.html" target="_blank"><font color="#616363"><strong>http://www.xinhuaedu.cn/site/slobber/flex_2_zh_cn_locale.html</strong></font></a></span>
<img src ="http://www.blogjava.net/19851985lili/aggbug/99119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-10 13:09 <a href="http://www.blogjava.net/19851985lili/articles/99119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>日期控件的本地化和输入的格式化 </title><link>http://www.blogjava.net/19851985lili/articles/99117.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 10 Feb 2007 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/99117.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/99117.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/99117.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/99117.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/99117.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td>页面跳转的实现</td>
														</tr>
												</tbody>
										</table>
								</td>
								<td width="15">
										<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
								</td>
						</tr>
				</tbody>
		</table>
		<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
				<tbody>
						<tr>
								<td bgcolor="#ffffff">
										<table cellspacing="0" cellpadding="0" width="100%" border="0">
												<tbody>
														<tr>
																<td>
																		<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																</td>
																<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																		<p>
																		</p>
																		<div class="c_t">
																				<p>Application xmlns:mx="http://www.macromedia.com/2003/mxml"&gt;<br />  &lt;mx:Script&gt;<br />  &lt;![CDATA[<br />    var url:String = "employee.mxml.swf"<br /> function modifyURL()<br /> {<br />  url = "corporation.mxml.swf";<br /> }<br />  ]]&gt;<br />  &lt;/mx:Script&gt;<br />  &lt;mx:VBox label="Sample" minWidth="0" minHeight="0" width="100%" height="100%" marginTop="8" marginLeft="8"&gt;<br /> &lt;mx:Loader id="loader" contentPath="{url}" scaleContent="false" showBusyCursor="true"/&gt;<br />  &lt;/mx:VBox&gt;<br />  &lt;mx:Button label="Button" click="modifyURL()" /&gt;<br />&lt;/mx:Application&gt;</p>
																				<p>这就是我写的测试例程，三个文件：index.mxml,employee.mxml,corporation.mxml放在web应用的根目录下就可以了，上面的代码是index.mxml的代码。其余两个文件写什么就随便了，只要不是错的。<img style="CURSOR: pointer" onclick="javascript:window.open(this.src);" alt="图片点击可在新窗口打开查看" src="http://www.blogdriver.com/jsp/face/13.gif" onload="imgresize(this);" twffan="done" /></p>
																				<p>在上面我介绍了使用Loader组件动态加载Flex页面的方法，但是后来发现加载的页面只能在很小的一个范围内显示，无论怎么设定Loader的参数都没有效果，这个问题今天终于搞明白了，下面做一下说明。 </p>
																				<p>　　要想让动态加载进来的页面满屏显示，不但要设定container和Loader组件的长度和宽度的参数，还要设定加载进来的swf的长度和宽度的参数。加载进来的swf存放在Loader组件的content属性里面，当Loader组件加载完毕会触发它自己的complete事件，在该事件中我们调整一下swf的长宽参数即可，关键代码如下：</p>
																				<p>function initSwf()<br />{<br />    loader.content.width="2000";<br />    loader.content.height="2000";<br />}</p>
																				<p>&lt;mx:Loader id="loader" width="100%" height="100%" contentPath="{url}" scaleContent="false" showBusyCursor="true" complete="initSwf()"/&gt;<br /><br /></p>
																				<table cellspacing="0" cellpadding="0" width="100%" border="0">
																						<tbody>
																								<tr>
																										<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
																												<table cellspacing="0" cellpadding="0" width="100%" border="0">
																														<tbody>
																																<tr>
																																		<td>弹出窗口的实现以及子父窗口的数据交换</td>
																																</tr>
																														</tbody>
																												</table>
																										</td>
																										<td width="15">
																												<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
																										</td>
																								</tr>
																						</tbody>
																				</table>
																				<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
																						<tbody>
																								<tr>
																										<td bgcolor="#ffffff">
																												<table cellspacing="0" cellpadding="0" width="100%" border="0">
																														<tbody>
																																<tr>
																																		<td>
																																				<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																																		</td>
																																		<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																																				<p>
																																				</p>
																																				<div class="c_t">
																																						<p>Flex里使用PopUpManager.createPopUp(parent, class, modal [, initobj, outsideEvents])创建父一个子窗口，该函数的参数说明如下：<br />parent 一个引用，引用弹出窗口所在的窗口。 <br />class 一个引用，引用要创建的对象的类。<br />modal 一个布尔值，它表明该窗口是 (true) 否 (false) 是模式的。<br />initobj  一个包含初始化属性的对象。此参数是可选的。<br />outsideEvents  一个布尔值，指明在用户单击窗口以外的区域时是 (true) 否 (false) 触发事件。此参数是可选的。<br />其中，前三个参数是必须的，后两个是可选的。第二个参数要和你的mxml文件名一致，第三个参数如果选择是则不允许弹出窗口没关闭前操作父窗口，反之则允许。</p>
																																						<p>　　首先我们创建一个页面，关键代码如下：<br />&lt;mx:Button label="Show Window" click="showWindow(false)" width="150"/&gt;<br />&lt;mx:Button label="Show Modal Window" click="showWindow(true)" width="150"/&gt;<br />function showWindow(modal)<br />{<br />    var <font color="#ff0000">popup</font> = mx.managers.PopUpManager.createPopUp(_root , login , modal, {deferred: true});<br />}</p>
																																						<p>　　然后我们创建一个TitleWindow，注意虽然也是mxml文件，但是它的定级元素不是Application而是TitleWindow，其余的地方和以前没什么两样了。</p>
																																						<p>　　下面介绍子父窗口的数据交换。</p>
																																						<p>　　当子窗口被创建的时候父窗口就获得了一个子窗口的实例，注意我用红子标出的变量。我们可以用该变量引用子窗口内定义的全局变量，例如我在子窗口中做如下定义：var name:String = "哈哈";。在父窗口中可以使用popup.name引用该变量。</p>
																																						<p>　　同样，在子窗口中我们可以使用"parent"来引用父窗口中定义的变量，例如我在父窗口中定义var age:String="24";。在子窗口中可以使用parent.age引用这个变量。<br /></p>
																																				</div>
																																				<p>
																																				</p>
																																				<table cellspacing="0" cellpadding="0" width="100%" border="0">
																																						<tbody>
																																								<tr>
																																										<td background="/skin/beok_skin_pink/tem02_title_bar02.gif">
																																												<table cellspacing="0" cellpadding="0" width="100%" border="0">
																																														<tbody>
																																																<tr>
																																																		<td>日期控件的本地化和输入的格式化</td>
																																																</tr>
																																														</tbody>
																																												</table>
																																										</td>
																																										<td width="15">
																																												<img src="http://blogcup.com/skin/beok_skin_pink/tem02_title_bar03.gif" />
																																										</td>
																																								</tr>
																																						</tbody>
																																				</table>
																																				<table cellspacing="0" cellpadding="0" width="98%" align="center" border="0">
																																						<tbody>
																																								<tr>
																																										<td bgcolor="#ffffff">
																																												<table cellspacing="0" cellpadding="0" width="100%" border="0">
																																														<tbody>
																																																<tr>
																																																		<td>
																																																				<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																																																		</td>
																																																		<td id="data_5278" style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px" width="100%">
																																																				<p>
																																																				</p>
																																																				<div class="c_t">Flex里的日期输入控件默认月份的显示是英文的，偶的英文很一般，就知道那十二个单词代表月份，具体是哪个月，要数一下，最近的项目又是对公网用户服务，什么年龄段的都有，如果让50岁的人看英文，那结果我都不感想了。 
<p>　　查阅了Flex的开发文档，发现修改控件的monthNames属性就能解决这个问题，这个属性是个数组，我们做一下的修改。首先在脚本里定义一个数组：var month:Array = new Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");然后我们可以这样使用控件：&lt;mx:DateField width="180" monthNames="{month}" /&gt;，这样日期就变成了中文。</p><p>　　日期数据的格式化和上面的做法类似，首先定义格式化函数：<br /> function formatDate(date:Date):String<br /> {<br />  return date.getUTCFullYear() + "-" + ( date.getUTCMonth() + 1 ) + "-" + ( date.getUTCDate() + 1 );<br /> }<br />日期控件我们就这样写：&lt;mx:DateField width="180" dateFormatter="formatDate" /&gt;</p><p>　　为了方便使用，可以把这个做成自定义组件</p></div>
																																																		</td>
																																																</tr>
																																														</tbody>
																																												</table>
																																										</td>
																																								</tr>
																																						</tbody>
																																				</table>
																																				<br />
																																				<br />
																																		</td>
																																		<td>
																																				<img height="1" src="http://blogcup.com/skin/beok_skin_pink/blank.gif" width="5" />
																																		</td>
																																</tr>
																														</tbody>
																												</table>
																										</td>
																								</tr>
																								<tr>
																										<td colspan="3">
																												<div align="right">
																														<img alt="" src="http://blogcup.com/skin/beok_skin_pink/m_icon_002.gif" />
																												</div>
																										</td>
																								</tr>
																						</tbody>
																				</table>
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/99117.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-10 12:54 <a href="http://www.blogjava.net/19851985lili/articles/99117.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>再谈Flex和Jsp之间中文参数的传递问题</title><link>http://www.blogjava.net/19851985lili/articles/99113.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 10 Feb 2007 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/99113.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/99113.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/99113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/99113.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/99113.html</trackback:ping><description><![CDATA[
		<div class="Content-body">
				<p>关于flex的中文问题，可算是老生常谈了，但是大家还有不少人总是在这方面犯错误，包括kenshin在内，也走了一些弯路，所以现在就把关于flex的中文参数问题在好好谢谢，如果有写的不对的地方，还请大家原谅<img src="http://www.k-zone.cn/zblog/ewebeditor/sysimage/emot/31.gif" /></p>
				<p>其实中文问题的解决，无外乎就是编码的一致性问题，举个例子，比如两个人进行交流，那他们的语言必须是一致的，这样双方才能听懂对方所说的话，这在现实的生活中是一个常识，在编程的时候，道理是一样的，要想使flex和jsp都“说同样的话”，首先要把他们的编码，也就是“语言”变成一致的，这就是根本的症结所在。首先要作的是把2种语言的编码设置方式给体现出来。</p>
				<p>大家都知道flex的编码方式是utf-8的形式，<font face="Verdana">&lt;?xml version="1.0" encoding="utf-8"?&gt; 这句话已经说的很清楚了</font></p>
				<p>
						<font face="Verdana">jsp中也有关于编码的设置<font face="Verdana">&lt;%@ page contentType="text/html; charset=utf-8"%&gt; 这样也可以设置jsp的编码形式</font></font>
				</p>
				<p>经过以上的写法，这2种语言的字符、编码都保持一致，即都是utf-8形式的，这样就使这个2个语言能够建立起来“沟通”。</p>
				<p>一般来说，最关键的一步咱们已经搞定了。关于flex中文的传递分成以下二种情况：</p>
				<ol>
						<li>Flex→Jsp，在上述的基础上，在jsp里面加上<font face="Verdana">request.getParameter("AAA").getBytes("ISO8859-1"), "utf-8")这样就使从flex传入的参数在jsp中能保持中文字符状态。</font></li>
						<li>Jsp→Flex，也是在上述的基础上，只要保持双方的编码形式都是utf-8的形式，就能够使Flex中的得到的结果是中文字符。</li>
				</ol>
				<p>
				</p>
				<hr />
				<p>
				</p>以上就使关于flex、jsp之间互传中文参数的解决方案，如果有什么不对的地方还请大家指正，太晚了，kenshin要睡觉了，明天在说<img src="http://www.k-zone.cn/zblog/ewebeditor/sysimage/emot/50.gif" /></div>
		<div class="Content-body">
				<img style="MARGIN: 4px 2px -4px 0px" alt="" src="http://www.k-zone.cn/zblog/style/pj/images/tag.gif" />
				<strong>Tags:</strong>
				<a href="http://www.k-zone.cn/zblog/catalog.asp?tags=Flex">Flex</a>  <a href="http://www.k-zone.cn/zblog/catalog.asp?tags=Flex2">Flex2</a>  <a href="http://www.k-zone.cn/zblog/catalog.asp?tags=%E4%B8%AD%E6%96%87%E9%97%AE%E9%A2%98">中文问题</a>  <a href="http://www.k-zone.cn/zblog/catalog.asp?tags=%E7%BC%96%E7%A0%81">编码</a>  <a href="http://www.k-zone.cn/zblog/catalog.asp?tags=utf%2D8">utf-8</a>  <br /><img style="MARGIN: 4px 2px -4px 0px" alt="" src="http://www.k-zone.cn/zblog/style/pj/images/pager.gif" /><strong>相关文章:</strong><br /><div class="Content-body2"><p><a id="18" href="http://www.k-zone.cn/zblog/post/log-2006-08-05-001.html">[Flex2]我的最新作品的截图-FXBlogV2</a>  (2006-8-5 12:35:53)</p><p><a id="19" href="http://www.k-zone.cn/zblog/post/log-200-07-15-001.html">[Flex]解决引入OSX.css后控件字体显示不出来的问题！</a>  (2006-7-15 7:39:9)</p><p><a id="20" href="http://www.k-zone.cn/zblog/post/log-2006-04-13-001.html">[Flex]Flex Search Beta V1.0的开发日志，截图和文档(2006.07.10更新)</a>  (2006-4-13 12:20:11)</p><p><a id="21" href="http://www.k-zone.cn/zblog/post/log-2006-04-05-001.html">[Flex]Flex Weather View Beta V2.0的开发日志和截图(2006.12.02更新)</a>  (2006-4-5 17:1:47)</p><p><a id="22" href="http://www.k-zone.cn/zblog/post/log-2006-03-28-002.html">[Flex]又见Flex 2.0 Beta 2 Release Download</a>  (2006-3-28 17:58:52)</p><p><a id="23" href="http://www.k-zone.cn/zblog/post/log-2006-03-28-001.html">[Flex]FXBlog系统流程图</a>  (2006-3-28 13:11:16)</p><p><a href="http://www.k-zone.cn/zblog/post/log-2006-03-26-002.html">[归档]有关本章原创FXBlog的一些归档</a>  (2006-3-26 17:20:53)</p><p><a href="http://www.k-zone.cn/zblog/post/log-2006-03-26-001.html">[Flex]本站原创FXBlog的开发文档</a>  (2006-3-26 16:30:32)</p><p><a href="http://www.k-zone.cn/zblog/post/log-2006-03-25-004.html">[Flex]FXBlog的三层结构示意图</a>  (2006-3-25 13:51:34)</p><p><a id="27" href="http://www.k-zone.cn/zblog/post/log-2006-03-25-003.html">[Flex]如何用Httpservice和Webservice来和Flex进行通讯</a>  (2006-3-25 </p></div></div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/99113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-10 12:45 <a href="http://www.blogjava.net/19851985lili/articles/99113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DataGrid 技巧</title><link>http://www.blogjava.net/19851985lili/articles/99111.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 10 Feb 2007 04:38:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/99111.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/99111.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/99111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/99111.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/99111.html</trackback:ping><description><![CDATA[
		<div align="center">
				<strong>DataGrid 技巧：行的背景色</strong>
		</div>
		<p>
				<br />
				<br />如何更改DataGrid中某一行的背景色是一个被经常问的问题。这个在Flex2.0中很简单，只需按照下面的步骤做：<br /><br />1.创建一个扩展自 mx.controls.DataGrid 的类。这个类可以是MXML文件或者ActionScript文件，你可以根据自己的习惯创建。<br /><br />2.覆写 protected 方法 <i>drawRowBackground</i> ：<br /><br /></p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">override protected function drawRowBackground(s:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void<br />   {<br />         // 这里可以做一些对数据的判断，然后更改相应的颜色。比如color = 0xFF0000;<br />        // 调用super函数来执行更改。<br />        super.drawRowBackground(s,rowIndex,y,height,color,dataIndex);<br />    }</div>
		</div>
		<p>
				<br />
				<br />3.在你的程序中用你新建的类替代 &lt;mx:DataGrid&gt;。<br /><br />在 drawRowBackground 方法中你可以对数据做一些判断。dataIndex 参数可以用来查看dataProvider 中某一行所显示的数据。例如：假设你想要将数值大于1000的行都显示为绿色：<br /><br /></p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">var item:Object = (dataProvider as ArrayCollection).getItemAt(dataIndex);<br />if( item.quantity &gt; 1000 ) color = 0x00FF00;</div>
		</div>
		<p>在<a href="http://www.cflex.net/" target="_blank" tip="">CFLEX</a>上看到一则小经验，就是关于DataGrid控件的方法。如果你不想把DataGrid中的数据绑定到控件上的话，你还可以用触发事件的方式来处理。你可以使用Click事件，也可以使用Change事件，它们基本上没有分别，不过不同的是Click事件用的是event.currentTarget，而Change 则是 event.target。例如，现在我们有一个控件叫someControl，它有一个text属性，用来显示你在DataGrid中选中的信息。如果用click事件，这么写DataGrid：<br /></p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="引用内容" src="http://www.zhuoqun.net/images/quote.gif" /> 引用内容</div>
				<div class="UBBContent">&lt;mx:DataGrid id="DG1" click="clickHandler(event)"/&gt;</div>
		</div>
		<p>
				<br />然后加入脚本：<br /></p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="引用内容" src="http://www.zhuoqun.net/images/quote.gif" /> 引用内容</div>
				<div class="UBBContent">&lt;mx:Script&gt;<br />  public function clickHandler(event:MouseEvent):void<br />  {<br />      someControl.text = <span style="COLOR: red">event.currentTarge</span>.selectedItem.someDataField;<br />  }<br />&lt;/mx:Script&gt;</div>
		</div>
		<p>
				<br />
				<br />如果用change事件，这么写DataGrid和脚本：<br /></p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="引用内容" src="http://www.zhuoqun.net/images/quote.gif" /> 引用内容</div>
				<div class="UBBContent">&lt;mx:DataGrid id="DG2" change="changeHandler(event)"/&gt;</div>
		</div>
		<p>
				<br />
				<br /> </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="引用内容" src="http://www.zhuoqun.net/images/quote.gif" /> 引用内容</div>
				<div class="UBBContent">&lt;mx:Script&gt;<br />  public function changeHandler(event:Event):void<br />  {<br />      someControl.text = <span style="COLOR: red">event.target</span>.selectedItem.someDataField;<br />  }<br />&lt;/mx:Script&gt;</div>
		</div>
		<div align="center">通过组合框（ComboBox）来过滤DataGrid</div>
		<p>
				<br />
				<br />
				<font size="3">   Flex中一个很普遍的应用就是用组合框（ComboBox）过滤显示在DataGrid中的数据。在这个技巧里，目的是把一个“作者” 数据库表里的数据显示到DataGrid里，表的结构如下：<br /><br />    </font>
		</p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<font size="3">
								<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" />
						</font> 程序代码</div>
				<div class="UBBContent">authorId : String;<br />    authorName : String;<br />    status : String;</div>
		</div>
		<p>
				<br />  另外，用户可以选择ComboBox中包含的不同的作者状态的值来过滤DataGrid显示的作者信息。推荐你把从服务器请求获得的结果转换为ArrayCollection，然后把这个ArrayCollection作为DataGrid的dataProvider。这样做你会发现操作和过滤显示的数据会很变得容易。获取数据超出了现在这个技巧的范围，不过关于这个问题有很多的例子可以参考。<br /><br /><br /><br />  首先，把结果转换为ArrayCollection。<br /><br />     </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">import mx.utils.ArrayUtil;<br /><br />       import mx.collections.ArrayCollection;<br /><br />       // event.result contains the data from the authors search.  <br /><br />       public var authorsArray : Array = mx.utils.ArrayUtil.toArray(event.result);<br /><br />       // Use authorsDataProvider as the dataProvider for the dataGrid.<br /><br />       [Bindable]<br /><br />       public var authorsDataProvider : ArrayCollection = new ArrayCollection(authorsArray);</div>
		</div>
		<p>
				<br />下面是mxml写的代码：<br /><br />     </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">&lt;mx:DataGrid id="dgAuthors"<br />                 dataProvider="{ authorsDataProvider }"/&gt;</div>
		</div>
		<p>
				<br />
				<br />接下来，把搜索结果中的作者状态值动态加载到ComboBox中。在这里，数据库中可能的作家状态值是"Active", "Inactive" 和 "Deleted"。但是在进行之前，让我们来回顾一下用例。我们把搜索作者得到的结果通过DataGrid视图向用户显示出来，在看过之后，用户可能希望过滤这些数据让它只显示“Active”的作者。当然，ComboBox中的"Active", "Inactive" 和"Deleted"可以直接硬编码，但是如果那样做的话，当数据库中添加了一个新的状态值得时候我们必须修改程序。而且，ComboBox中的值应该只包含搜索结果中的作者状态，如果搜索结果只包含状态为"Active"和"Inactive"的作者，ComboBox应该只包含相应的值（没有”Delete”）。如果所有数据库中可能的作者状态值都在ComboBox中硬编码，用户就可以选择”Delete”这个值，然后就会看到一个没有任何数据的DataGrid。我们不想困扰用户，所以接下来的代码会动态加载作者状态值到一个数组，然后把这个数组作为ComboBox的dataProvider。<br /><br />     </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">// Use the authorsStatusArray as the dataProvider for the comboBox.<br /><br />     [Bindable]<br />     public var authorsStatusArray : Array = populateAuthorsStatusArray(authorsArray);<br /><br />    public function populateAuthorsStatusArray(authorsArray:Array):Array<br />     {<br />             var statusArrayHashMap : Object = new Object();<br />                            var statusArray : Array = new Array;<br />              <br />             var n:int = authorsArray.length;<br />             for (var i:int = 0; i &lt; n; i++)<br />             {<br />                              if (statusArrayHashMap[authorsArray [i].status] == undefined)<br />                              {<br />                                        statusArrayHashMap[authorsArray [i].status] = new Object();<br />                                        statusArray.push(authorsArray [i].status);<br />                              }<br />              }<br />             statusArray.sort();<br />             statusArray.unshift("All");<br /><br />// The "All" value is used programmatically to un-filter (reset) the result in the dataGrid.  <br />return statusArray;<br />     }</div>
		</div>
		<p>
				<br />
				<br />  最后，通过选中的ComboBox中的值来过滤DataGrid显示的结果。<br /><br />       </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">public function filterAuthorsGrid():void<br />       {  <br />               authorsDataProvider.filterFunction=authorsStatusFilter;<br />               authorsDataProvider.refresh();          <br />       }<br /><br />       public function authorsStatusFilter(item:Object):Boolean<br />       {<br />               if (cboAuthorsStatusFilter.selectedItem != "All")<br />               {<br />                       return item.status == cboAuthorsStatusFilter.selectedItem;<br /><br />               } else {<br /><br />                        return true;<br />               }<br />       }</div>
		</div>
		<p>
				<br />
				<br />下面是mxml写的代码：<br /><br />       </p>
		<div class="UBBPanel">
				<div class="UBBTitle">
						<img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.zhuoqun.net/images/code.gif" /> 程序代码</div>
				<div class="UBBContent">&lt;mx:ComboBox id="cboAuthorsStatusFilter"<br />               dataProvider="{ authorsStatusArray }"<br />               change=" filterAuthorsGrid();"/&gt;</div>
		</div>
		<p>
				<br />
				<br />这就是全部的技巧。因为DataGrid的dataProvider利用了绑定（binding），所以当用户在ComboBox中选中了一个值的时候，DataGrid会动态显示过滤后的结果。请紧记，这只是一个小技巧而且可能有一些生涩的地方。但是你应该可以通过这些代码领会这种思想。<br /><br /></p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/99111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-10 12:38 <a href="http://www.blogjava.net/19851985lili/articles/99111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编写ActionScript3.0中需要注意的</title><link>http://www.blogjava.net/19851985lili/articles/98546.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Wed, 07 Feb 2007 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/98546.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/98546.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/98546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/98546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/98546.html</trackback:ping><description><![CDATA[
		<p>总结起来需要注意的原则就是：尽量在编译的阶段发现错误，因为这时发现并解决错误远远要比在运行时出错解决起来容易的多。可是实际情况中很多人经常会违反这一原则，下面是我列举的10个技巧:<br /><br />1) 永远不要使用'Object' 来存储数据. 因为这是一种绕开编译器检查的做法，完全不符合面向对象的思想。如果要用Hashmap或者相应的数组，那么可以用Dictionary。否则，请自已定义一个类，而不要使用Object来作为数据的存储器。<br /><br />2) 不要用Object来作为对象的类型。这是欺骗编译器的方法。如果必须这样用，最好在存取属性或者调用函数时，先进行强制性的类型转换，至少这是给编译器的一个提示，也帮助其他人理解你的代码。</p>
		<p>3) 也不要用*类型。</p>
		<p>4) 不要将ActionScript的类声明为动态。</p>
		<p>5) 注意Application.application (和其他的无类型的框架属性). 这个属性有一些古怪.  他应该是Applicaton类型的，因为他指向的实例必须是Application的子类. 但实际上他的类型是'Object', 无法应用编译时的检查。如果你一定要用，最好也进行类型的强制性转换。:</p>
		<blockquote>
				<p>MyApplication( Application.application ).functionCall();</p>
		</blockquote>
		<p>6) 封装你的Xml。使用Xml与Server进行数据的交互非常方便，但是尽量避免使用Xml作为核心数据模型。从服务器收到数据后，尽量把Xml转换为强类型的对象模型。在Flex应用内部使用Xml是绕开编译器的作法。 </p>
		<p>7) 不要使用DynamicEvent. </p>
		<p>8) 不要使用mx:Model。如上所述，请尽量使用自定义的强类型的类.</p>
		<p>9) 不要使用Cairngorm中的data属性，而应该继承扩展CairngormEvent来传递数据。</p>
		<p>10) 不要把编译器的严格模式关掉</p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/98546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-07 11:37 <a href="http://www.blogjava.net/19851985lili/articles/98546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex2 发现之旅：AS3中新的XML处理方法 - E4X</title><link>http://www.blogjava.net/19851985lili/articles/97622.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 02 Feb 2007 11:43:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/97622.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/97622.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/97622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/97622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/97622.html</trackback:ping><description><![CDATA[
		<div class="post-content">
				<p class="zh_p">今天我们来看看AS3中新的XML处理方法：<a href="http://www.ecma-international.org/publications/standards/Ecma-357.htm" target="_blank" hreflang="en">E4X</a>，直到现在，ECMA脚本语言规范（ECMA-262）－－AscriptScript 3.0的核心基础，并没有提供任何的XML数据处理类或方法。AcriontScript之前的版本（从Flash 5中的ActionScript开始）有一些处理XML数据的类和方法，但是它们并不是基于ECMAScript标准的。</p>
				<p class="zh_p">新的ECMA脚本语言规范第4版草稿中定义了一系列新的处理XML数据的类和方法。这些类和方法的集合并命名为E4X（"ECMAScript for XML"），ActionScript 3.0包括如下新的E4X类： <a href="http://livedocs.macromedia.com/labs/1/flex/langref/XML.html" target="_blank">XML</a>、<a href="http://livedocs.macromedia.com/labs/1/flex/langref/XMLList.html" target="_blank">XMLList</a>、 <a href="http://livedocs.macromedia.com/labs/1/flex/langref/QName.html" target="_blank">QName</a>和<a href="http://livedocs.macromedia.com/labs/1/flex/langref/Namespace.html" target="_blank">Namespace</a>。</p>
				<p class="zh_p">E4X类的方法、属性和操作的开法基于以下的目标：</p>
				<ul>
						<li>简单－－E4X尽可能的使得处理XML数据的代码容易编写并且易于理解。 
</li>
						<li>一致性－－E4X的方法于Actionscript的其它部分协调一致。 
</li>
						<li>友好－－实用非常好理解的操作符处理XML数据，如点号（.）。 </li>
				</ul>
				<p class="zh_p">注意：为避免与E4X中的新的XML类冲突，原来ActionScript 2.0中的XML类在ActionScript 3.0被重命名为<a href="http://livedocs.macromedia.com/labs/1/flex/langref/flash/xml/XMLDocument.html" target="_blank">XMLDocument</a>，为了向前兼容，在ActionScript 3.0中遗留下来的类－－XML、XMLNode、XMLParser和XMLTag--被包含进了<a href="http://livedocs.macromedia.com/labs/1/flex/langref/flash/xml/package-detail.html" target="_blank">flash.xml</a>包中。新的E4X类是核心类－－使用它们不需要import任何包。</p>
				<p class="zh_p">
						<strong>初始化XML对象</strong>
				</p>
				<p class="zh_p">XML对象可以代表一个XML元素、属性、注释、处理指令或文本元素。在ActionScript 3.0中我们可以直接将XML数据赋值给变量：</p>
				<p>
				</p>
				<pre>var myXML:XML =
   &lt;order&gt;
       &lt;item id='1'&gt;
           &lt;menuName&gt;burger&lt;/menuName&gt;
           &lt;price&gt;3.95&lt;/price&gt;
       &lt;/item&gt;
       &lt;item id='2'&gt;
           &lt;menuName&gt;fries&lt;/menuName&gt;
           &lt;price&gt;1.45&lt;/price&gt;
       &lt;/item&gt;
   &lt;/order&gt;</pre>
				<p class="zh_p">你也可以使用new 构造器来从XML数据文本创建一个XML对象实例：</p>
				<p>
				</p>
				<pre>var myXML:XML = new XML("&lt;order&gt;&lt;item id='1'&gt;&lt;menuName&gt;burger&lt;/menuName&gt;&lt;price&gt;3.95&lt;/price&gt;&lt;/item&gt;&lt;/order&gt;")
</pre>
				<p>
				</p>
				<p class="zh_p">如果XML数据不是格式完好的（如少了结束标签），那么将会出现运行时错误。</p>
				<p class="zh_p">注意，你也可以将变量实例传入XML数据中：</p>
				<p>
				</p>
				<pre>var tagname:String = "item";
var attributename:String = "id";
var attributevalue:String = 5;
var content:String = "Chicken";
var x:XML = &lt;{tagname} {attributename}={attributevalue}&gt;{content}&lt;/{tagname}&gt;;
trace (x.toXMLString())
   // Output: &lt;item id="5"&gt;Chicken&lt;/item&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">通常，我们的应用是从外部源导入XML数据，如web service或RSS feed,以下是一个从远程URL导入XML数据的例子：</p>
				<p>
				</p>
				<pre>var myXML:XML = new XML();
var XML_URL:String = "http://www.example.com/Sample3.xml";
//创建URLRequest。
var myXMLURL:URLRequest = new URLRequest(XML_URL);
//使用URLLoader导入数据。
var myLoader:URLLoader = new URLLoader(myXMLURL);
//添加事件监听器，以在XML数据导入完成后处理XML数据。
myLoader.addEventListener("complete", xmlLoaded);
//导入完成后，创建使用导入的数据创建XML对象
function xmlLoaded(evtObj:Event) {
       var myXML:XML = XML(myLoader.data);
       trace("Data loaded.");

}
</pre>
				<p>
				</p>
				<p class="zh_p">为了演示代码的清晰性，本文中的大部份示例都第1种直接使用文本的方法创建XML对象。</p>
				<p class="zh_p">E4X包含一些直观的方法XML数据的操作符（如.和@:用于访问属性）：</p>
				<p>
				</p>
				<pre>//获取第1个item的menuName值
trace(myXML.item[0].menuName); // Output: burger
//获取第1个item的id属性值
trace(myXML.item[0].@id);//Output:1
//获取id属性为2的item的menuName值
trace(myXML.item.(@id==2).menuName); // Output: fries
//获取menuName为burger的item的price值
trace(myXML.item.(menuName=="burger").price); // Output: 3.95<p></p></pre>
				<p>
				</p>
				<p class="zh_p">你也可以使用appendChild()方法给XML添加新的子节点：</p>
				<p>
				</p>
				<pre>var newItem:XML =
   &lt;item id="3"&gt;
       &lt;menuName&gt;medium cola&lt;/menuName&gt;
       &lt;price&gt;1.25&lt;/price&gt;
   &lt;/item&gt;

myXML.appendChild(newItem);
</pre>
				<p>
				</p>
				<p class="zh_p">当然你也可以使用@和.操作符来更新数据:</p>
				<p>
				</p>
				<pre>myXML.item[0].menuName="regular burger";
myXML.item[1].menuName="small fries";
myXML.item[2].menuName="medium cola";

myXML.item.(menuName=="regular burger").@quantity = "2";
myXML.item.(menuName=="small fries").@quantity = "2";
myXML.item.(menuName=="medium cola").@quantity = "2";
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>访问XML数据</strong>
				</p>
				<p class="zh_p">你可以使用.（点号）和..操作符访问XML对象的子节点，使用@操作符访问某一节点的属性。考虑以下XML对象： </p>
				<p>
				</p>
				<pre> 
var x:XML =
      &lt;book ISBN="0942407296"&gt;
           &lt;title&gt;Baking Extravagant Pastries with Kumquats&lt;/title&gt;
           &lt;author&gt;
               &lt;lastName&gt;Contino&lt;/lastName&gt;
               &lt;firstName&gt;Chuck&lt;/firstName&gt;
           &lt;/author&gt;
           &lt;pageCount&gt;238&lt;/pageCount&gt;
       &lt;/book&gt;
       &lt;book ISBN="0865436401"&gt;
           &lt;title&gt;Emu Care and Breeding&lt;/title&gt;
           &lt;editor&gt;
               &lt;lastName&gt;Case&lt;/lastName&gt;
               &lt;firstName&gt;Justin&lt;/firstName&gt;
           &lt;/editor&gt;
           &lt;pageCount&gt;115&lt;/pageCount&gt;
       &lt;/book&gt;
   &lt;/order&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">对象x.book表示一个包含所有名称为book的子节点的XMLList对象，该XMLList包含两个XML对象（两个book节点）。</p>
				<p class="zh_p">对象x..lastName表示一个包含XML树结构下部所有的lastName属性的XMLList对象，该XMList包含两个XML对象（两个LastName属性）。</p>
				<p class="zh_p">对象x.book.editor.lastName表示一个包含所有x对象的所有名称为book的子节点的所有名称为editor的子节点的所有lastName节点的XMLList对象，该XMLList只包含一个XML对象(值为"Case"的lastName属性)。</p>
				<p class="zh_p">
						<strong>访问父节点和子节点</strong>
				</p>
				<p class="zh_p">parent()方法返回XML对象的父节点。</p>
				<p class="zh_p">你可以使用子节点列表的顺序索引值来访问特定的子节点，例如，假定某一XML对象x有两个名称为book的子节点，你可以如下访问它们：</p>
				<p>
				</p>
				<pre>//第1个book节点
x.book[0]
//第2个book节点
x.book[1]
</pre>
				<p>
				</p>
				<p class="zh_p">要访问孙子节点，我们可以如下直接使用儿子和孙子节点的索引值来访问：</p>
				<p class="zh_p">
				</p>
				<pre>x.book[0].title[0]</pre>
				<p>
				</p>
				<p class="zh_p">不过如果x.book[0]只有一个名称为title的子节点的话，那么可以省略索引：</p>
				<p class="zh_p">
				</p>
				<pre>x.book[0].title</pre>
				<p>
				</p>
				<p class="zh_p">类似的，如果x对象只有一个book子节点，并且该book节点的子节点对象只有一个title对象，那么两个索引值都可以省略：</p>
				<p class="zh_p">x.book.title</p>
				<p class="zh_p">注意，你也可以使用child()方法，直接使用名称访问特定的子节点：</p>
				<p>
				</p>
				<pre>var x.XML =
       &lt;order&gt;
           &lt;book&gt;
               &lt;title&gt;Dictionary&lt;/title&gt;
           &lt;/book&gt;
       &lt;/order&gt;

var childName:String = "book";
trace (x.child(childName).title) // Output: Dictionary
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>访问属性</strong>
				</p>
				<p class="zh_p">我们使用使用@操作符访问XMLNode属性：</p>
				<p>
				</p>
				<pre>var myXML:XML =
   &lt;order&gt;
       &lt;item id='1'&gt;
           &lt;menuName&gt;burger&lt;/menuName&gt;
           &lt;price&gt;3.95&lt;/price&gt;
       &lt;/item&gt;
       &lt;item id='2'&gt;
           &lt;menuName&gt;fries&lt;/menuName&gt;
           &lt;price&gt;1.45&lt;/price&gt;
       &lt;/item&gt;
   &lt;/order&gt;

//获取第1个item的id属性值
trace(myXML.item[0].@id);//Output:1
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>使用属性或元素值过滤XML数据</strong>
				</p>
				<p class="zh_p">我们可以使用特定的元素名称和属性值来定位到特定的元素考虑以下XML对象：</p>
				<p>
				</p>
				<pre>var x:XML =
   &lt;employeeList&gt;
       &lt;employee id="347"&gt;
           &lt;lastName&gt;Zmed&lt;/lastName&gt;
           &lt;firstName&gt;Sue&lt;/firstName&gt;
           &lt;position&gt;Data analyst&lt;/position&gt;
       &lt;/employee&gt;
       &lt;employee id="348"&gt;
           &lt;lastName&gt;McGee&lt;/lastName&gt;
           &lt;firstName&gt;Chuck&lt;/firstName&gt;
           &lt;position&gt;Jr. data analyst&lt;/position&gt;
       &lt;/employee&gt;
   &lt;/employeeList&gt;

</pre>
				<p>
				</p>
				<p class="zh_p">以下是正确的访问方法：</p>
				<p>
				</p>
				<pre>//lastName为“McGee”的employee对象，第1个employee节点
x.employee.(lastName == "McGee") // The first employee node
//lastName为“McGee”的employee对象的firstName节点，第1个employee节点的节点
x.employee.(lastName == "McGee").firstName // The firstName property of that node
//lastName为“McGee”的id属性
x.employee.(lastName == "McGee").@id // The value of the id attribute
//所有id属性值为347的employee对象列表
x.employee.(@id == 347)
//id属性值为347的employee对象的lastName子节点
x.employee.(@id == 347).lastName
//所有id属性值大于347的employee对象列表
x.employee.(@id &gt; 300) // An XML list with both employee properties
//所有position子节点值包含“analyst”的employee对象列表
x.employee.(position.toString().search("analyst") &gt; -1)
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>使用for ... in和for each ... in 语句</strong>
				</p>
				<p class="zh_p">ActionScript 3.0 包括了一个新用来遍历XMLList对象的的for ... in语句和for each ... in语句。例如，考虑以下XML对象，myXML和myXML..item XMLList对象（包含两个item XML对象节点的XML列表）：</p>
				<p>
				</p>
				<pre>var myXML:XML =
   &lt;order&gt;
       &lt;item id='1' quantity='2'&gt;
           &lt;menuName&gt;burger&lt;/menuName&gt;
           &lt;price&gt;3.95&lt;/price&gt;
       &lt;/item&gt;
       &lt;item id='2' quantity='2'&gt;
           &lt;menuName&gt;fries&lt;/menuName&gt;
           &lt;price&gt;1.45&lt;/price&gt;
       &lt;/item&gt;
   &lt;/order&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">for ... in语句可以让我们遍历XMLList的所有属性名称,实际上就是个节点的索引值：</p>
				<p>
				</p>
				<pre>var total:Number = 0;
for (var pname:String in myXML..item)
{
    total += Number(myXML.item.@quantity[pname]) * Number(myXML.item.price[pname]);
}
</pre>
				<p>
				</p>
				<p class="zh_p">for each ... in语句遍历XMLList的所有节点：</p>
				<p>
				</p>
				<pre>var total2:Number = 0;
for each (var item:XML in myXML..item)
{
  total2 += Number(item@quantity) * Number(item.price);
}
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>使用with语句</strong>
				</p>
				<p class="zh_p">我们可以使用with语句，来指明后续的属性和节点值都是基于某一XML对象，前面的for each ... in示例代码，使用with语句的代码如下：</p>
				<p>
				</p>
				<pre>var total:Number = 0;
for each (var item in myXML..item)
{
   with (item)
    {
         //{内的属性和节点对象都是基于item XML对象的，所有不需要使用item.来访问。
         total += Number(@quantity) * Number(price);
     }

}
trace(total);
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>修改XML对象</strong>
				</p>
				<p class="zh_p">我们可以使用prependChild()方法或者appendChild()方法在XML对象的子节点列表的前面或者最后面添加节点：</p>
				<p>
				</p>
				<pre>var x1:XML = &lt;p&gt;Paragraph 1&lt;/p&gt;
var x2:XML = &lt;p&gt;Paragraph 2&lt;/p&gt;
var x:XML = &lt;body&gt;&lt;/body&gt;
x = x.appendChild(x1);
x = x.appendChild(x2);
x = x.prependChild(&lt;p&gt;Paragraph 0&lt;/p&gt;);

// x == &lt;body&gt;&lt;p&gt;Paragraph 0&lt;/p&gt;&lt;p&gt;Paragraph 1&lt;/p&gt;&lt;p&gt;Paragraph 2&lt;/p&gt;&lt;/body&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">使用insertChildBefore()方法或者insertChildAfter()方法在特定的节点前面活着回后面添加节点：</p>
				<p>
				</p>
				<pre>var x:XML =
   &lt;body&gt;
       &lt;p&gt;Paragraph 1&lt;/p&gt; 
       &lt;p&gt;Paragraph 2&lt;/p&gt;
   &lt;/body&gt;

var newNode:XML = &lt;p&gt;Paragraph 1.5&lt;/p&gt;
x = x.insertChildAfter(x.p[0], newNode)
x = x.insertChildBefore(x.p[2], &lt;p&gt;Paragraph 1.75&lt;/p&gt;)
</pre>
				<p>
				</p>
				<p class="zh_p">注意，我们也可以在构造XML对象的时候使用大括号（{和}）来引用变量：</p>
				<p>
				</p>
				<pre>var ids:Array = [121, 122, 123];
var names:Array = [["Murphy","Pat"],["Thibaut","Jean"], ["Smith","Vijay"]]
var x:XML = new XML("&lt;employeeList&gt;&lt;/employeeList&gt;");

for (var i:int = 0; i &lt; 3; i++) {
          var newnode:XML = new XML(); 
           newnode =
               &lt;employee id={ids[i]}&gt;
                   &lt;last&gt;{names[i][0]}&lt;/last&gt;
                   &lt;first&gt;{names[i][1]}&lt;/first&gt;
               &lt;/employee&gt;

           x = x.appendChild(newnode)

}
</pre>
				<p>
				</p>
				<p class="zh_p">我们也可以使用=操作符来给XML对象节点赋值：</p>
				<p>
				</p>
				<pre>var x:XML =
   &lt;employee&gt;
       &lt;lastname&gt;Smith&lt;/lastname&gt;
   &lt;/employee&gt;

x.firstname = "Jean";
x.@id = "239";
</pre>
				<p>
				</p>
				<p class="zh_p">以上代码将把XML对象X设置成如下：</p>
				<p>
				</p>
				<pre>&lt;employee id="239"&gt;
   &lt;lastname&gt;Smith&lt;/lastname&gt;
   &lt;firstname&gt;Jean&lt;/firstname&gt;
   &lt;/employee&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">我们也可以使用+和+=操作符来连结XMLList：</p>
				<p>
				</p>
				<pre>var x1:XML = &lt;a&gt;test1&lt;/a&gt;
var x2:XML = &lt;b&gt;test2&lt;/b&gt;
var xList:XMLList = x1 + x2;
xList += &lt;c&gt;test3&lt;/c&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>
								<em>删除XML对象</em>
						</strong>
				</p>
				<p class="zh_p">E4X规范中定义有delete和deleteByIndex方法用来删除特定的XML节点，但是在当前版本的ActionScript 3.0实现中，并没有实现这两个方法，所有我们不能直接使用这两个方法，不过我们可以使用遍历XML树，剔除特定的节点，重新构造新的XML对象的方法来删除某一特定节点，以下我们将删除employee的lastname子节点：</p>
				<p>
				</p>
				<pre>private function deleteByIndex(xmlNode:XML,index:Number):XML{
    var newStr:String='';
    newStr+='&lt;'+xmlNode.localName();
    for each (var att:XML in xmlNode.attributes()){
        newStr+=' '+att.localName()+'="'+att.toString()+'"';
    }
    newStr+='&gt;';
    var i:Number=0;
    for each(var node:XML in xmlNode.children()){
        if(i!=index)
            newStr+=node.toXMLString();
        i++;
    }
    newStr+='&lt;/'+xmlNode.localName()+'/&gt;';
    return new XML(newStr);
}

var myXML:XML=
   &lt;employee id="239"&gt;
           &lt;lastname&gt;Smith&lt;/lastname&gt;
           &lt;firstname&gt;Jean&lt;/firstname&gt;
           &lt;address&gt;
           	&lt;city&gt;shangrao&lt;/city&gt;
           	&lt;load&gt;daihu&lt;/load&gt;
           	&lt;no&gt;5&lt;/no&gt;
           &lt;/address&gt;
       &lt;/employee&gt;

myXML=deleteByIndex(myXML,0);
</pre>
				<p>
				</p>
				<p class="zh_p">以上的deleteByIndex函数有两个参数，第1的参数是被删除节点的父节点，第2的参数是被删除节点的在父节点的子节点列表中索引值。先遍历父节点的索引属性，然后遍历其所有的子节点，跳过我们要删除的节点，然后将它们组合成新的XML对象返回。</p>
				<p class="zh_p">如果XML对象非常复杂，数据量必较大的话，以上删除节点的实现方法效率是非常好低，所有正确的选择还是使用E4X定义的删除方法，不过这个功能要等到ActionScript 3.0的下一个测试版本才能够实现。</p>
				<p class="zh_p">
						<strong>XML类型转换</strong>
				</p>
				<p class="zh_p">我们可以将XML对象和XMLList对象转换为字符串，同样的，我们也可以将字符串转换为XML对象和XMLList对象。顺便，请记住所有的XML属性值、名称和文本值都是字符串。</p>
				<p class="zh_p">
						<strong>转换XML和XMLList对象为字符串</strong>
				</p>
				<p class="zh_p">XML对象和XMLList对象都有有两个成员方法：toString()和toXMLString()方法。toXMLString()方法返回包含所有标签、属性、命名空间声明和XML对象内容的字符串，对与复杂的XML对象（包含有子元素），toString()方法的效果和toXMLString()方法的效果一样，但是对与简单的XML对象（只包含一个文本元素），toString()方法只返回元素的文本内容：</p>
				<p>
				</p>
				<pre>var myXML:XML =
  &lt;order&gt;
       &lt;item id='1' quantity='2'&gt;
           &lt;menuName&gt;burger&lt;/menuName&gt;
           &lt;price&gt;3.95&lt;/price&gt;
       &lt;/item&gt;
   &lt;order&gt;

trace(myXML.item<a href="http://www.eshangrao.com/index.php/2006/01/04/0">0</a>.menuName.toXMLString())
    // Output: &lt;menuName&gt;burger&lt;/menuName&gt;
trace(myXML.item<a href="http://www.eshangrao.com/index.php/2006/01/04/0">0</a>.menuName.toString())
    // Output: burger
</pre>
				<p>
				</p>
				<p class="zh_p">将文本字符串转换为XML对象</p>
				<p class="zh_p">我们可以使用new构造方法从字符串创建一个XML对象</p>
				<p class="zh_p">
				</p>
				<pre>var x:XML = new XML('&lt;a&gt;test&lt;b&gt;');</pre>
				<p>
				</p>
				<p class="zh_p">但是如果我们试图将一个非XML或者结构不完整的字符串转换为XML对象，那么将会报运行时错误：</p>
				<p class="zh_p">
				</p>
				<pre>var x:XML = new XML('&lt;a&gt;test'); // Throws an error</pre>
				<p>
				</p>
				<p class="zh_p">
						<strong>从Internet读取Rss Fead数据</strong>
				</p>
				<p class="zh_p">以下代码将读取本站的rss fead数据：</p>
				<p>
				</p>
				<pre>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;mx:Application xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*" <a name="baidusnap0"></a><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">creationComplete</b>="doInit()"&gt;
  &lt;mx:Script&gt;
  &lt;![CDATA[
    private function doInit():Void{
      getRssData("http://blog.eshangrao.com/rss.php",ta_view);
    }

    public function getRssData(url:String, outTxt:TextArea):Void
    {
      private var myXMLURL:URLRequest = new URLRequest(url);
      private var myLoader:URLLoader = new URLLoader(myXMLURL);
      myLoader.addEventListener("complete", xmlLoaded);
    }
    private function xmlLoaded(event:Event):Void{
      ta_view.text='load ok';
      var myLoader:URLLoader = URLLoader(event.target);
      XML.ignoreProcessingInstructions=false;
      var myXML:XML =new XML(myLoader.data);
      private var outStr:String = "";
      for each (var item:XML in myXML.children()) {
        if(item.localName()=='item'){
          outStr += "&lt;p&gt;&lt;b&gt;" + item.children()<a href="http://www.eshangrao.com/index.php/2006/01/04/0">0</a>.toString() + ":&lt;/b&gt;&lt;/p&gt;&lt;p&gt;";
          outStr += item.children()<a href="http://www.eshangrao.com/index.php/2006/01/04/6">6</a>.toString() ;
          outStr += " &lt;br/&gt;&lt;a href='" + item.children()<a href="http://www.eshangrao.com/index.php/2006/01/04/1">1</a>.toString();
          outStr += "'&gt;&lt;font color='#008000'&gt;More...&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;";
        }
      }
      //ta_view.text=myXML.toString();
      ta_view.htmlText = outStr;
    }
  ]]&gt;
  &lt;/mx:Script&gt;
  &lt;mx:Canvas width="100%" height="100%"&gt;
    &lt;mx:TextArea id="ta_view"&gt;
      &lt;mx:layoutConstraints&gt;
        &lt;mx:EdgeAnchor bottom="10" top="10" left="10" right="10"/&gt;
      &lt;/mx:layoutConstraints&gt;
    &lt;/mx:TextArea&gt;
  &lt;/mx:Canvas&gt;
&lt;/mx:Application&gt;
</pre>
				<p>
				</p>
				<p class="zh_p">
						<a href="http://labs.eshangrao.com/flex/2/RssReaderExample.html" target="_blank">运行示例</a>(FlashPlayer8.5 required)</p>
				<p class="zh_p">注意，我们没有直接使用节点名称访问节点（不知道为什么，如果使用item.title访问title节点的话，返回是空的，可能跟我的RSS XML的中rdf指令有关，如果有朋友知道解决的办法，请告诉我），而是使用了children()方法，该方法返回某一XML对象的所有子节点对象，</p>
				<p class="zh_p">获取更多AS3中E4X类的使用信息，请查看<a href="http://livedocs.macromedia.com/labs/1/flex/00002041.html" hreflang="en">Adobe在线文档</a>，详细API参考：<a href="http://livedocs.macromedia.com/labs/1/flex/langref/index.html">Adobe Flex 2 API文档</a></p>
		</div>
		<p class="post-info">作者 feiy, 星期三 4 一月 2006 à 16:46 <span>::</span><a href="http://www.eshangrao.com/index.php/Program">程序人生</a><span>::</span><a title="Lien permanent vers : Flex2 发现之旅：AS3中新的XML处理方法 - E4X" href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x">#164</a><span>::</span><a title="fil RSS des commentaires de : Flex2 发现之旅：AS3中新的XML处理方法 - E4X" href="http://www.eshangrao.com/rss.php?type=co&amp;post=164">rss</a></p>
		<div class="prev_next">&lt;&lt; <a href="http://www.eshangrao.com/index.php/2006/01/01/163-2006" alt="">2006，旺年旺上加旺</a> | <a href="http://www.eshangrao.com/index.php/2006/01/06/165-55windows" alt="">开源软件新时代：55个经典开源Windows工具</a> &gt;&gt; </div>
		<div id="google_ad">
		</div>
		<div id="trackbacks">
				<h3 id="tb">Trackbacks</h3>
				<p>无trackback.</p>
				<p>trackbak地址 : http://www.eshangrao.com/tb.php?id=164</p>
		</div>
		<div id="comments">
				<h3 id="co">评论</h3>
				<p class="comment-info" id="c747">
						<span class="comment-number">
								<a href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x#c747">1.</a>
						</span> 星期一 16 一月 2006 à 10:04, 作者 <strong>king</strong></p>
				<blockquote>
						<p>你好,我想问一下,比方讲我现在有个XML文件,我用FLEX2.0生成的SWF,能不能直接修改,删除,新增这个XML文件的节点.<br />具体怎么操作?</p>
				</blockquote>
				<p class="comment-info" id="c748">
						<span class="comment-number">
								<a href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x#c748">2.</a>
						</span> 星期一 16 一月 2006 à 11:58, 作者 <strong><a href="http://blog.eshangrao.com/">feiy</a></strong></p>
				<blockquote>
						<p>XML节点的修改不是问题，问题是如何保存这个修改的问题，目前的FLEX的XML处理，还不支持直接在FLEX中更新远程文件，需要后台的支持，如coldfusion等。。。<br /><br />不过对于如果是本地文件，可以使用Flex的LocalConnection,调用javaScript实现修改保存，javascript中可以调用一个签名java组件实现。</p>
				</blockquote>
				<p class="comment-info" id="c753">
						<span class="comment-number">
								<a href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x#c753">3.</a>
						</span> 星期二 17 一月 2006 à 14:09, 作者 <strong>king</strong></p>
				<blockquote>
						<p>我就是只修改本地文件的.<br />我的意思就是生成一个swf 文件,以及一个xml 文件,放到购买的空间上去,然后就是用浏览器访问这个swf,去修改这个xml,这样子也算本地吗?<br /></p>
				</blockquote>
				<p class="comment-info" id="c754">
						<span class="comment-number">
								<a href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x#c754">4.</a>
						</span> 星期二 17 一月 2006 à 17:20, 作者 <strong><a href="http://blog.eshangrao.com/">feiy</a></strong></p>
				<blockquote>
						<p>不算了，对于访问你的SWF的访客来说，本地是指该访客自己机子硬盘上的文件，而你的XML文件对他来说是远端的文件了，所有需要后台的支持！</p>
				</blockquote>
				<p class="comment-info" id="c17677">
						<span class="comment-number">
								<a href="http://www.eshangrao.com/index.php/2006/01/04/164-flex2-actionscript3xml-e4x#c17677">5.</a>
						</span> 星期四 2 十一月 2006 à 00:06, 作者 <strong><a href="http://frogcjn.blogba.cn/">frogcjn</a></strong></p>
				<blockquote>
						<p>认真阅读了您的教程,对于删除节点(child)的方法，我认为还可以有以下简洁方法：<br /><br />就是使用delete运算符.以您所举的deleteByIndex函数作例：<br /><br />private function deleteByIndex(xmlNode:XML,index:Number):XML{<br />var newxmlNode = xmlNode.copy();<br />delete newxmlNode.children()[index];<br />return newxmlNode;<br />}<br /><br />这种使用delete方法删除节点(child)的方法，使用范围相当的广，也相当的简单，但是只能删除一个XML，而不能删除XMLList。当要删除XMLList内所有内容或符合条件的部分内容是，就使用for each遍历XMLList内的所有XML即可。<br />注意的是，delete会将指定的XML完全从内存中删除，所以要想在内存保留，那么就使用XML的copy函数即可，如上例deleteByIndex函数中一样。</p>
				</blockquote>
		</div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/97622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-02-02 19:43 <a href="http://www.blogjava.net/19851985lili/articles/97622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex中使用样式和主题</title><link>http://www.blogjava.net/19851985lili/articles/95472.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Tue, 23 Jan 2007 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/95472.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/95472.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/95472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/95472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/95472.html</trackback:ping><description><![CDATA[
		<div style="MARGIN-LEFT: 0cm">
				<strong>
						<span style="FONT-SIZE: 12pt">一、<span style="FONT: 7pt 'Times New Roman'">           </span></span>
				</strong>
				<strong>
						<span style="FONT-SIZE: 12pt">关于样式</span>
				</strong>
		</div>
		<div style="MARGIN-LEFT: 21pt">
				<strong>
				</strong> </div>
		<div style="TEXT-INDENT: 24pt">
				<span style="FONT-SIZE: 12pt">你可以通过样式属性来修改</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">组件的外观，这此属性可以定义一个</span>
				<span style="FONT-SIZE: 12pt">Label</span>
				<span style="FONT-SIZE: 12pt">控件的字体大小，或者是</span>
				<span style="FONT-SIZE: 12pt">Tree</span>
				<span style="FONT-SIZE: 12pt">控件的背景颜色。在</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">中，一些样式属性是从父容器继承到子控件的，如样式类型和类。这意味着你只需定义一次样式，然后你可以将此样式应用到单个控件和列表控件，此外，你还可以在本地覆盖每个控件的单独样式属性。组件级别和全局级别的样式将给你控制应用程序的外观以很大的灵活性。</span>
		</div>
		<div style="TEXT-INDENT: 24pt">
				<span style="FONT-SIZE: 12pt">本节向你介绍将样式应用到控件，也介绍了</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">（层叠样式）的基础知识，样式属性值的基本格式（</span>
				<span style="FONT-SIZE: 12pt">Length,Color ,Time</span>
				<span style="FONT-SIZE: 12pt">）以及样式的继承。本节的子节介绍了在</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">中，应用样式的不同方法。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">不提供使用</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">控制组件布局的所有属性方面，像</span>
				<span style="FONT-SIZE: 12pt">x,y,width</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">height</span>
				<span style="FONT-SIZE: 12pt">是</span>
				<span style="FONT-SIZE: 12pt">UIComponent</span>
				<span style="FONT-SIZE: 12pt">的属性，所以不能用</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">来定义。其他属性，比如</span>
				<span style="FONT-SIZE: 12pt">left,right,top</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">bottom</span>
				<span style="FONT-SIZE: 12pt">是样式属性，通常用来在容器中操作组织件的定位。</span>
		</div>
		<div> </div>
		<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt">
				<span style="FONT-SIZE: 12pt; COLOR: red">一、<span style="FONT: 7pt 'Times New Roman'">            </span></span>
				<span style="FONT-SIZE: 12pt; COLOR: red">在</span>
				<span style="FONT-SIZE: 12pt; COLOR: red">Flex</span>
				<span style="FONT-SIZE: 12pt; COLOR: red">中使用样式</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">
				</span> </div>
		<div>
				<span style="FONT-SIZE: 12pt">在</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">中有使用样式的很多方法。一些提供了更细粒度和可编程的控制，另外一些不是很灵活，但是可运算量很小。在</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">中将样式应用到控件有几种方法。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">当应用样式的时候，你必须留心你的主题支持哪些属性。</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">中的并不支持所有的样式属性。更多的信息，请查看“关于支持的样式”</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">
				</span>
		</div>
		<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt">
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">二、<span style="FONT: 7pt 'Times New Roman'">            </span></span>
								<span style="FONT-SIZE: 12pt">外部样式表</span>
						</font>
				</strong>
		</div>
		<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt">
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">
								</span>
						</font>
				</strong>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">应用样式到文档或者整个应用程序。你可以不调用</span>
				<span style="FONT-SIZE: 12pt">ActionScript</span>
				<span style="FONT-SIZE: 12pt">程序指定一个样式表。这是应用样式的最简单方法，但是这不是最灵活的方法。样式表可以定义被所有控件继承的全局样式</span>
				<span style="FONT-SIZE: 12pt">,</span>
				<span style="FONT-SIZE: 12pt">也可以定义应用到某一控件的单独样式类。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">下面的例子</span>
				<span style="FONT-SIZE: 12pt">,</span>
				<span style="FONT-SIZE: 12pt">在当前的文档应用了一个外部样式表</span>
				<span style="FONT-SIZE: 12pt">myStyle.css.</span>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">&lt;mx:Style source=”myStyle.css”/&gt;</span>
				</em>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">更多关于应用外部样式表的信息，请参看</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">应用外部样式表</span>
				<span style="FONT-SIZE: 12pt">”P617</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">Flex </span>
				<span style="FONT-SIZE: 12pt">在</span>
				<span style="FONT-SIZE: 12pt">
						<a name="baidusnap0">
						</a>
						<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">framework.swc</b>
				</span>
				<span style="FONT-SIZE: 12pt">文件中包括了一个全局样式表</span>
				<span style="FONT-SIZE: 12pt">(default.css)</span>
				<span style="FONT-SIZE: 12pt">。这个文件包含全局样式类选择器的定义，以及大多数</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">组件的类型选择器。关于</span>
				<span style="FONT-SIZE: 12pt">default.css</span>
				<span style="FONT-SIZE: 12pt">更多信息</span>
				<span style="FONT-SIZE: 12pt">,</span>
				<span style="FONT-SIZE: 12pt">请参看“关于默认样式表部分”（</span>
				<span style="FONT-SIZE: 12pt">P618</span>
				<span style="FONT-SIZE: 12pt">）</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">还包括一些其他的样式表，他们有统一的外观。更多信息，参看</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">关于包括主题文件</span>
				<span style="FONT-SIZE: 12pt">”P631</span>
		</div>
		<div> </div>
		<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt">
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">三、<span style="FONT: 7pt 'Times New Roman'">            </span></span>
								<span style="FONT-SIZE: 12pt">本地样式定义</span>
						</font>
				</strong>
		</div>
		<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt">
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">
								</span>
						</font>
				</strong>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">&lt;mx:Style&gt;</span>
				<span style="FONT-SIZE: 12pt">标签定义应用到当前文档和其子组件的样式，你使在</span>
				<span style="FONT-SIZE: 12pt">&lt;mx:Style&gt;</span>
				<span style="FONT-SIZE: 12pt">标签中应用</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">语法定义样式，此样式可以应用到某个控件和单独的控件的实便。下面的例子定义了一个新的样式并且将它应用到</span>
				<span style="FONT-SIZE: 12pt">myButton</span>
				<span style="FONT-SIZE: 12pt">控件。</span>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">&lt;mx:Style&gt;</span>
				</em>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">       .myFontStyle { fontSize:15}</span>
				</em>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">&lt;/mx:Style&gt;</span>
				</em>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">&lt;mx:Button id=”myButton” styleName=”myFontStyle” label=”Click Here”/&gt;</span>
				</em>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">下面的例子定义了一个新的样式并且应用到一个按钮控件上。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">更多的关于使用本地样式定的信息，请参看</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">使用本地样式定义</span>
				<span style="FONT-SIZE: 12pt">”p619</span>
		</div>
		<div> </div>
		<div>
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">四 样式管理器类</span>
								<span style="FONT-SIZE: 12pt">(StyleManager )</span>
						</font>
				</strong>
		</div>
		<div>
				<strong>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt">
								</span>
						</font>
				</strong>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用样式管理器类（</span>
				<span style="FONT-SIZE: 12pt">StyleManager</span>
				<span style="FONT-SIZE: 12pt">）应用样式到所有的类，或者应用到所有的指定类的实例。下面的例子设定了所有的</span>
				<span style="FONT-SIZE: 12pt">TextArea</span>
				<span style="FONT-SIZE: 12pt">控件的字体大小（</span>
				<span style="FONT-SIZE: 12pt">fongSize</span>
				<span style="FONT-SIZE: 12pt">）为</span>
				<span style="FONT-SIZE: 12pt">15</span>
				<span style="FONT-SIZE: 12pt">像素。</span>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">StyleManager.getStyleDeclaration(“TextArea”).setStyle(“fongSize”,15);</span>
				</em>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">你也可以使用</span>
				<span style="FONT-SIZE: 12pt">CSSStyleDeclaration</span>
				<span style="FONT-SIZE: 12pt">对象去构建一个运行时样式表，并且使用</span>
				<span style="FONT-SIZE: 12pt">StyleManager</span>
				<span style="FONT-SIZE: 12pt">类的</span>
				<span style="FONT-SIZE: 12pt">setStyleDeclaration()</span>
				<span style="FONT-SIZE: 12pt">方法运用这些样式</span>
				<span style="FONT-SIZE: 12pt">.</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">StyleManager</span>
				<span style="FONT-SIZE: 12pt">类的更多信息，请参考</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">运用样式管理器类</span>
				<span style="FONT-SIZE: 12pt">(StyleManager)”.</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt">getStyle() </span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">setStyle()</span>
				<span style="FONT-SIZE: 12pt">方法的使用</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">setStyle()</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">getStyle()</span>
				<span style="FONT-SIZE: 12pt">方法操作控件实例的样式属性。使用这些方法运用样式比使用样式表需要客户端大量的处理资源，但是担供了更细粒度的应用。</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt">下面的例子设定了</span>
				<span style="FONT-SIZE: 12pt">Button</span>
				<span style="FONT-SIZE: 12pt">控件的实例</span>
				<span style="FONT-SIZE: 12pt">myButton</span>
				<span style="FONT-SIZE: 12pt">的字体大小为</span>
				<span style="FONT-SIZE: 12pt">15</span>
				<span style="FONT-SIZE: 12pt">像素</span>
				<span style="FONT-SIZE: 12pt">.</span>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">myButton.setStyle(“fontSize”,15);</span>
				</em>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">关于</span>
				<span style="FONT-SIZE: 12pt">getStyle()</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">setStyle()</span>
				<span style="FONT-SIZE: 12pt">方法的更多信息，请参看</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">getStyle()</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">setStyle()</span>
				<span style="FONT-SIZE: 12pt">方法节</span>
				<span style="FONT-SIZE: 12pt">”p623</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt">
						<strong>
								<font color="#ff0000">五 内联样式</font>
						</strong>
				</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">
				</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">使用</span>
				<span style="FONT-SIZE: 12pt">MXML</span>
				<span style="FONT-SIZE: 12pt">标签应用样式属性。这些属性仅被除应用到控件的实例。这是应用实例属性的最简便的方法，因为没有</span>
				<span style="FONT-SIZE: 12pt">ActionScript</span>
				<span style="FONT-SIZE: 12pt">代码块和方法调用。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">下面的例子设定了</span>
				<span style="FONT-SIZE: 12pt">Button</span>
				<span style="FONT-SIZE: 12pt">控件的实例</span>
				<span style="FONT-SIZE: 12pt">myButton</span>
				<span style="FONT-SIZE: 12pt">的字体大小为</span>
				<span style="FONT-SIZE: 12pt">15</span>
				<span style="FONT-SIZE: 12pt">像素</span>
		</div>
		<div>
				<em>
						<span style="FONT-SIZE: 12pt">&lt;:Button id="myButton" fontSize="15" label="My Button"/&gt;</span>
				</em>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt">在一个</span>
				<span style="FONT-SIZE: 12pt">MXML</span>
				<span style="FONT-SIZE: 12pt">标签里，你必须使用样式属性名称的驼峰表示法。例如，前一个例子，你必须写成“</span>
				<span style="FONT-SIZE: 12pt">fongSize”</span>
				<span style="FONT-SIZE: 12pt">而不是“</span>
				<span style="FONT-SIZE: 12pt">font-size(CSS</span>
				<span style="FONT-SIZE: 12pt">方式</span>
				<span style="FONT-SIZE: 12pt">).</span>
				<span style="FONT-SIZE: 12pt">更多的样式属性名，请参考“关于属性和选择器名称节”</span>
				<span style="FONT-SIZE: 12pt">p607.</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">你可以给内联样式属性绑定值。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">关于内联样式的更多信息，请参看</span>
				<span style="FONT-SIZE: 12pt">”</span>
				<span style="FONT-SIZE: 12pt">使用内联样式</span>
				<span style="FONT-SIZE: 12pt">”.</span>
		</div>
		<div> </div>
		<div>
				<span style="FONT-SIZE: 12pt">
						<strong>
								<font color="#ff0000">六 设定全局样式</font>
						</strong>
				</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">
				</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">大多数文本和颜色样式，比如</span>
				<span style="FONT-SIZE: 12pt">fontSize</span>
				<span style="FONT-SIZE: 12pt">和</span>
				<span style="FONT-SIZE: 12pt">color</span>
				<span style="FONT-SIZE: 12pt">属性，是可继承的。当你应用一个可继承的样式到一个容器，此容器的所有子组件会继承此样式属性的值。如果你设定一个面板（</span>
				<span style="FONT-SIZE: 12pt">Panel</span>
				<span style="FONT-SIZE: 12pt">）容器的颜色（</span>
				<span style="FONT-SIZE: 12pt">color</span>
				<span style="FONT-SIZE: 12pt">）属性为绿色（</span>
				<span style="FONT-SIZE: 12pt">green</span>
				<span style="FONT-SIZE: 12pt">）</span>
				<span style="FONT-SIZE: 12pt">,</span>
				<span style="FONT-SIZE: 12pt">所有在此容器中的按钮都将是绿色，除非这些按钮覆盖了颜色（</span>
				<span style="FONT-SIZE: 12pt">color</span>
				<span style="FONT-SIZE: 12pt">）属性。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">然后一些样式并不是可继承的。如果你应用这些样式属性到父容器，那么只有父容器应用了此样式，此容器的子控件没有使用此不可继承的样式属性的值。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">运用全局样式，你可以应用不可继承的样式到所有的控件而不需要显示的覆盖此样式。</span>
				<span style="FONT-SIZE: 12pt">Flex</span>
				<span style="FONT-SIZE: 12pt">提供以下方法应用全局样式：</span>
		</div>
		<div style="MARGIN-LEFT: 0cm">
				<span style="FONT-SIZE: 12pt">A．</span>
				<span style="FONT-SIZE: 12pt">StyleManager </span>
				<span style="FONT-SIZE: 12pt">样式管理器全局样式</span>
		</div>
		<div style="MARGIN-LEFT: 0cm">
				<span style="FONT-SIZE: 12pt">B．</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">全局选择器。</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">样式管理器让你将全局样式应用到所有的控件。更多的关于应用样式管理器的信息，请参考“使用样式管理器类</span>
				<span style="FONT-SIZE: 12pt">StyleManager</span>
				<span style="FONT-SIZE: 12pt">”</span>
		</div>
		<div>
				<span style="FONT-SIZE: 12pt">在你的</span>
				<span style="FONT-SIZE: 12pt">CSS</span>
				<span style="FONT-SIZE: 12pt">样式定义中应用</span>
				<span style="FONT-SIZE: 12pt">global</span>
				<span style="FONT-SIZE: 12pt">选择器应用全局样式，这些可以在外部的样式表中定义也可在</span>
				<span style="FONT-SIZE: 12pt">&lt;mx:Style&gt;</span>
				<span style="FONT-SIZE: 12pt">标签中定义。更多信息，参看“使用全局选项择器（</span>
				<span style="FONT-SIZE: 12pt">global</span>
				<span style="FONT-SIZE: 12pt">）”</span>
		</div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/95472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-23 10:23 <a href="http://www.blogjava.net/19851985lili/articles/95472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex中datagrid中的过滤功能 </title><link>http://www.blogjava.net/19851985lili/articles/95471.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Tue, 23 Jan 2007 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/95471.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/95471.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/95471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/95471.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/95471.html</trackback:ping><description><![CDATA[
		<span style="COLOR: #000000">&lt;?</span>
		<span style="COLOR: #000000">xml version</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">1.0</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> encoding</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">utf-8</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">?&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Application xmlns:mx</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">http://www.adobe.com/2006/mxml</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />                layout</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">vertical</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />                creationComplete</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">initApp()</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
				<br />
		</span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Script</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;!</span>
		<span style="COLOR: #000000">[CDATA[<br /><br />    </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> On startup</span>
		<span style="COLOR: #008000">
				<br />
		</span>
		<span style="COLOR: #000000">    </span>
		<span style="COLOR: #0000ff">public</span>
		<span style="COLOR: #000000"> function initApp():</span>
		<span style="COLOR: #0000ff">void</span>
		<span style="COLOR: #000000">
				<br />    {<br />        </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> Set filter function<br />        </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> Be careful to set filterFunction<br />        </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> only after ArrayCollection has been<br />        </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> populated.</span>
		<span style="COLOR: #008000">
				<br />
		</span>
		<span style="COLOR: #000000">        myData.filterFunction</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">processFilter;<br />    }<br /><br />    </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> Filter function</span>
		<span style="COLOR: #008000">
				<br />
		</span>
		<span style="COLOR: #000000">    </span>
		<span style="COLOR: #0000ff">public</span>
		<span style="COLOR: #000000"> function processFilter(item:Object):Boolean<br />    {<br />        var result:Boolean</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #0000ff">false</span>
		<span style="COLOR: #000000">;<br /><br />        </span>
		<span style="COLOR: #008000">//</span>
		<span style="COLOR: #008000"> If no filter text, or a match, then true</span>
		<span style="COLOR: #008000">
				<br />
		</span>
		<span style="COLOR: #000000">        </span>
		<span style="COLOR: #0000ff">if</span>
		<span style="COLOR: #000000"> (</span>
		<span style="COLOR: #000000">!</span>
		<span style="COLOR: #000000">item.name.length<br />                </span>
		<span style="COLOR: #000000">||</span>
		<span style="COLOR: #000000"> item.name.toUpperCase().indexOf(txtFilter.text.toUpperCase()) </span>
		<span style="COLOR: #000000">&gt;=</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">0</span>
		<span style="COLOR: #000000">)<br />        result</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #0000ff">true</span>
		<span style="COLOR: #000000">;<br /><br />        </span>
		<span style="COLOR: #0000ff">return</span>
		<span style="COLOR: #000000"> result;<br />    }<br />]]</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:Script</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
				<br />
		</span>
		<span style="COLOR: #000000">&lt;!--</span>
		<span style="COLOR: #000000"> Data (use ArrayCollection) </span>
		<span style="COLOR: #000000">--&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:ArrayCollection id</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">myData</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:source</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Object name</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Ben Forta</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            location</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Oak Park, MI</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            phone</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">(248)555-5555</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Object name</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Jane Doe</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            location</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">New York, NY</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            phone</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">(212)555-1234</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Object name</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Jim Jones</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            location</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Atlanta, GA</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            phone</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">(414)555-1212</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Object name</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Roberta Roberts</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            location</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Chicago, IL</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            phone</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">(312)555-4321</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Object name</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Steve Stevens</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            location</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Boston, MA</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            phone</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">(617)555-5656</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> </span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:source</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:ArrayCollection</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
				<br />
		</span>
		<span style="COLOR: #000000">&lt;!--</span>
		<span style="COLOR: #000000"> UI </span>
		<span style="COLOR: #000000">--&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:HBox width</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">100%</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:Label text</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Filter:</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:TextInput id</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">txtFilter</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            width</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">100%</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />            change</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">myData.refresh()</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:HBox</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
				<br />
		</span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:DataGrid dataProvider</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">{myData}</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />        width</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">100%</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000"> height</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">100%</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:columns</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:DataGridColumn headerText</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Name</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />                    dataField</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">name</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:DataGridColumn headerText</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Location</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">
				<br />                    dataField</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">location</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />        </span>
		<span style="COLOR: #000000">&lt;</span>
		<span style="COLOR: #000000">mx:DataGridColumn headerText</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">Phone</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">            dataField</span>
		<span style="COLOR: #000000">=</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">phone</span>
		<span style="COLOR: #000000">"</span>
		<span style="COLOR: #000000">/&gt;</span>
		<span style="COLOR: #000000">
				<br />    </span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:columns</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:DataGrid</span>
		<span style="COLOR: #000000">&gt;</span>
		<span style="COLOR: #000000">
				<br />
		</span>
		<span style="COLOR: #000000">&lt;/</span>
		<span style="COLOR: #000000">mx:Application</span>
		<span style="COLOR: #000000">&gt;<br /><br />其中主要的是ArrayCollection的filterFunction属性,他的使用方法如下:<br />ArrayCollection的filterFunction属性是继承自<a name="baidusnap0"></a><b style="COLOR: black; BACKGROUND-COLOR: #ffff66">ListCollectionView</b>的，还有其他类具有这个功能,以下是一个继承关系图,详细的可以看flex 的帮助文件<br />filterFunction属性的值是一个函数(Function)：<br />参数：Object类型的一个值,也可以不带参数；<br />返回值：Boolean类型的值，如果返回值为True就把这个Object放到里面,反之亦然。<br />其函数格式事例如下：<br />f(item:Object):Boolean<br />在函数里面进行处理,以上的例子就是如此：<br /> public function processFilter(item:Object):Boolean<br /> {<br />       var result:Boolean=false;<br />      // 查看文本框里的字符串长度或字符串的匹配（大小写都可以），然后返回结果。<br />      if (!item.name.length || item.name.toUpperCase().indexOf(txtFilter.text.toUpperCase()) &gt;= 0)<br />     result=true;<br />     return result;<br /> }<br /><span style="COLOR: red">注意：filterFunction函数只有在对象建立的时候和调用reflash()的时候执行的，所以一定要在显示之前调用下reflash()，否则显示就不正常了，切记！切记！</span><br /></span>
<img src ="http://www.blogjava.net/19851985lili/aggbug/95471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-23 10:21 <a href="http://www.blogjava.net/19851985lili/articles/95471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex2工作流程很清晰：</title><link>http://www.blogjava.net/19851985lili/articles/95442.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Tue, 23 Jan 2007 00:47:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/95442.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/95442.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/95442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/95442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/95442.html</trackback:ping><description><![CDATA[1.Front Controller Listens for User Gestures<br />前端的控件监听用户的行为。注意它只是监听，并不会做任何反应。<br /><br />2.Commands Do All the Work<br />控件监听以后调用Commands来做相应的事情，Command做了所有工作。<br /><br />3.Delegate Server-Side Business Logic to Business Delegates<br />把服务器端的业务逻辑委托到 Bussiness Delegates中。因为很多时候command需要获得服务器端数据，所以这样一来它可以直接调用Bussiness Delegates而不用关注如何连接数据的细节，实现了信息隐藏。<br /><br />4.Business Delegate Finds Services with the Service Locator<br />Command调用Business Delegate 后，Business Delegate 通过Service Locator来找到相应的RPC services，然后执行实现从服务器端取数据。<br /><br />5.Transfer Data as Value Objects<br />把传输过来的数据存储为Value Objects。这点大家应该都很熟悉，比如想要查询一个公告，就必定创建一个公告类，来存储每一个公告的标题等信息。<br /><br />6.Store State in the Model Locator and Let Model Notify View<br />在Model Locator 保存状态并且能使Model检测到View的变化。这样一来用户操作就能直接影响Model，比如添加物品到购物车，Model中的购物商品就会自动增加。<br /><br /><img src ="http://www.blogjava.net/19851985lili/aggbug/95442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-23 08:47 <a href="http://www.blogjava.net/19851985lili/articles/95442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Flex 2 Sdk编译as3.0</title><link>http://www.blogjava.net/19851985lili/articles/93703.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Sat, 13 Jan 2007 18:35:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93703.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93703.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93703.html</trackback:ping><description><![CDATA[许多人已经知道可以使用flash9预览版编译as3.0.但可能有两种不能或不愿意使用Flash9预览版编译as3.0.比如，目前使用的是2003系统，还有一种是专门做开发的程序员．目前Flex 2的试用版有30天的限制．下面我们要说的是不使用Flex builder 2 或Flash 9 professional来编译as3.0.<br /><br />1.首先先获取编译器．<br />　先要从adobe下载<a href="http://www.adobe.com/cfusion/tdrc/index.cfm?product=flex" target="_blank"><font color="#003366"><strong>Flex 2 sdk</strong></font></a>编译器，如果你已装了flex builder 2 试用版．那么这个编译器就已经存于你的机器上了．它的位置为：<br />C:\Program Files\Adobe\Flex Builder 2\Flex SDK 2\bin\mxmlc.exe<br />如果你没装Flex builder 2 .而用的是Flex 2 sdk.路径约是这样．<br />盘符＞\bin\mxmlc.exe<br />现在你已经知道了，我们要用的是mxmlc.exe 这个编译器．<br />2.java运行环境的设置<br />　mxmlc.exe编译器的运行需要java２的运行环境．所以如果你需要安装java 2 的运行环境．如果你已经安装了Flex builder 2 那么java 2的运行环境应是已配置好的．不过有一点你需要注意一下，在你的电脑上查看一下你的java 环境变量是否已经设置了，如果没有设置需要设置．<br />３．拖放式编译<br />如果你的java环境已经设置好了．接下来的工作就简单了．你只需要将你编写的as3类文件拖放到mxmlc.exe上，那么mxmlc.exe就会自动启用并编译as3.0类．但你会发现一个dos窗口打开，编译完成后随即关闭了．这是因为mxmlc.exe是一种command_line命今行编译．那么这里可能就会出现一种情，如果有错误提式的时候我们并不能看到它．那么我们可以用下面的方法．<br />４．批处理方式编译<br />在下面的附件中包有一个批处理文件和类文件，是供你测试时使用的．批处理文件名为make.bat.在使用之前，你需要打开它，在SET mxmlcPath=后输入你的mxmlc.exe所在的路径，你只需要将你编写的As3.0文件拖动到批处理文件上．你会发现出现一个dos窗口，并显示编译的过程，如果有错误也会显示在这个dos窗口中．与些同时你也会发现它自身会创建一个与你的as3.0类同名的一个批处理，如我的类名为HelloWorld.as那么它会自动生成一个批处理名字为HelloWorld.bat.假设在编译时出错，在你修改完后，你只需要再次双击执行自动生成的批处理文件HelloWorld.bat即可．<br />呵呵，如果你不想用Flash9 或是没有Flex 2那就试试吧．注意一点java 2的运行环境变一定要先配置好．如果你装了Flex builder 2 你可以在安装目录下找到jre包，指向这个包也可以．<br />make.bat批处理的内容：<br /><div style="MARGIN: 5px 20px 20px" twffan="done"><div class="smallfont" style="MARGIN-BOTTOM: 2px" twffan="done">引用:</div><table style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" cellspacing="0" cellpadding="6" width="100%" border="0"><tbody><tr><td class="alt2" style="BORDER-RIGHT: 1px inset; BORDER-TOP: 1px inset; BORDER-LEFT: 1px inset; BORDER-BOTTOM: 1px inset">@ECHO off<br />REM ------Description------------------------------------------------------<br />REM Drag your .as file onto this .bat to create a new .bat that will<br />REM compile and, if compilation successful, open the resulting swf.<br />REM -----------------------------------------------------------------------<br /><br />REM ------User-Variables---------------------------------------------------<br />REM mxmlcPath: Path to mxmlc command line compiler. You may need<br />REM to change this based on your installation<br />SET mxmlcPath="F:\flex2 and As3.0\flex_sdk_2\bin\mxmlc.exe"<br /><br />REM opts: Command line options for mxmlc if any. You can get a list<br />REM of the available options from:<br />REM <a href="http://livedocs.macromedia.com/labs/1/flex/00001191.html" target="_blank"><font color="#003366"><strong>http://livedocs.macromedia.com/labs...x/00001191.html</strong></font></a><br />REM or by running:<br />REM mxmlc.exe -help list advanced details<br />REM in the command prompt (properly referencing mxmlc.exe)<br />SET opts=-benchmark=true -creator="Trevor McCauley"<br />REM -----------------------------------------------------------------------<br /><br />REM Generate .bat code and save to file<br />ECHO @ECHO OFF ^&amp; (IF EXIST "%%~dp0%~n1.swf" (DEL "%%~dp0%~n1.swf")) ^&amp; %mxmlcPath% %opts% -file-specs "%%~dp0%~nx1" ^&amp; (IF EXIST "%%~dp0%~n1.swf" (CALL "%%~dp0%~n1.swf") ELSE (PAUSE)) &gt; "%~dpn1.bat"<br />REM Immediately execute the generated bat<br />@ECHO on<br />CALL "%~dpn1.bat" </td></tr></tbody></table></div><img src ="http://www.blogjava.net/19851985lili/aggbug/93703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-14 02:35 <a href="http://www.blogjava.net/19851985lili/articles/93703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用ActionScript块在MXML文件中</title><link>http://www.blogjava.net/19851985lili/articles/93528.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93528.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93528.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93528.html</trackback:ping><description><![CDATA[当FLEX使用AC代码的时候需要写在FLEX的&lt;mx:Script&gt;标签当中，<br /><pre>&lt;mx:Script&gt;<br />    &lt;![CDATA[<br />        ...<br />    ]]&gt;<br />&lt;/mx:Script&gt;<br />例如：<br />&lt;?xml version="1.0"?&gt;<br />&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"&gt;<br /><br /><span style="COLOR: rgb(153,51,0)">&lt;mx:Script&gt;</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">    &lt;![CDATA[</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">        var z:Number;</span><br style="COLOR: rgb(153,51,0)" /><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">        public function doSomething():void {</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">            z = z + 1;   // This must be in a function.</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">        }</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">    ]]&gt;</span><br style="COLOR: rgb(153,51,0)" /><span style="COLOR: rgb(153,51,0)">&lt;/mx:Script&gt;</span><br />...<br />&lt;/mx:Application&gt;<br /><br /><font style="FONT-WEIGHT: bold" size="4">在ActionScript使用特殊的字符<br /><br /></font>在AC脚本当中可以假如特殊的字符，例如“&lt;”,"&gt;"等和标签相同的符号因为<br />    &lt;![CDATA[<br />        ...<br />    ]]&gt;<br /><br />内容内的代码，不被XML进行解析，所以这些特殊字符理所当然的可以自由使用。这中方法也常在FLASH调用XML时候使用。<br /><font style="FONT-WEIGHT: bold" size="4"><br />在</font><font style="FONT-WEIGHT: bold" size="4"><font size="+0">ActionScript</font></font><font size="4"><span style="FONT-WEIGHT: bold">同FLEX组件关联<br /><br /></span><font size="3">可以在</font></font><font size="3"><font size="+0">ActionScript</font>中获取FLEX的值，使</font><font size="3"><span style="FONT-WEIGHT: bold"></span><font size="+0"><font size="+0">ActionScript</font></font>与FLEX进行交互，例如下面的例子<br /></font>&lt;?xml version="1.0"?&gt;<br />&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" &gt;<br /><code><strong>    &lt;mx:TextArea id="ta1" text="Congratulations. You are a winner."/&gt;</strong></code><br />&lt;/mx:Application&gt;<br /><br />在<font size="3"><font size="+0">ActionScript中调用FLEX组件的值，使用如下代码：<br />&lt;mx:Script&gt;<br /></font></font>	&lt;![CDATA[<br />		var str:String = ta1.text; <br />	]]&gt;<br />&lt;/mx:Script&gt;<br /><br /><font style="FONT-WEIGHT: bold" size="4">包含 </font><font style="FONT-WEIGHT: bold" size="4"><font size="+0"><font size="+0">ActionScript 代码，导入</font></font></font><font style="FONT-WEIGHT: bold" size="4"><font size="+0"><font size="+0">ActionScript类<br /><br /></font></font></font><code>&lt;mx:Script source="filename"&gt;&lt;/mx:Script&gt; 其中filename是文件名，文件名可以是*.as也可以是一般文件。<br />例如：<br />loadas.mxml代码如下：<br />&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="500" height="500"&gt;<br />	&lt;mx:Script source="loaded.as"&gt;<br />	&lt;/mx:Script&gt;<br />	&lt;mx:Panel title="loadAs" width="300" height="200" verticalAlign="middle" horizontalAlign="center"&gt;<br />		&lt;mx:Label id="mylabel" width="100" height="100" fontSize="14"/&gt;<br />		&lt;mx:Button id="myButton"  label="click me!" click="clickHandler(event);"/&gt;<br />	&lt;/mx:Panel&gt;<br />&lt;/mx:Application&gt;<br /><br /><span style="FONT-WEIGHT: bold">loaded.as代码如下：</span><br /><br />// ActionScript file<br />import flash.events.MouseEvent;<br /><br />private function clickHandler(event:MouseEvent):void{<br />	mylabel.text = "Hello World!";<br />}<br /><br /><br /><font style="FONT-WEIGHT: bold" size="4"><br />创建</font></code><font style="FONT-WEIGHT: bold" size="4"><font size="+0"><font size="+0">ActionScript </font></font></font><font style="FONT-WEIGHT: bold" size="4">组件<br /><br /></font><font size="3">创建一个</font>MyButton.as文件代码如下：<br /><br />// ActionScript file<br />package myControls<br />{<br />	import mx.controls.Button;<br /><br />    public class MyButton extends Button {<br />        public function MyButton() {<br />        	this.label = "Click Me!";<br />        }<br />    }<br />}<br /><br />在FLEX中调用实现自己定义的组件，代码如下：<br />&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" <br /><code><strong>xmlns:cmp="myControls.*"</strong></code> &gt;<br /><br /><code><strong>&lt;cmp:MyButton /&gt;</strong></code><br /><br />&lt;/mx:Application&gt;<br />}</pre><img src ="http://www.blogjava.net/19851985lili/aggbug/93528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 20:38 <a href="http://www.blogjava.net/19851985lili/articles/93528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> DTD简介</title><link>http://www.blogjava.net/19851985lili/articles/93512.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 11:00:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93512.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93512.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93512.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93512.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1. DTD										简介																																																DTD(Document Type Definition)										定义了								XML										文档的合法构造块，他用一系列合法的元素定义文档结构								...&nbsp;&nbsp;<a href='http://www.blogjava.net/19851985lili/articles/93512.html'>阅读全文</a><img src ="http://www.blogjava.net/19851985lili/aggbug/93512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 19:00 <a href="http://www.blogjava.net/19851985lili/articles/93512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex2.0 性能优化</title><link>http://www.blogjava.net/19851985lili/articles/93475.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93475.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93475.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93475.html</trackback:ping><description><![CDATA[
		<table border="1">
				<tbody>
						<tr bgcolor="#dfdfdf">
								<th nowrap="" align="left">
										<div style="MARGIN-LEFT: 4px">名称</div>
								</th>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 4px">
												<b>flex2.0</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 16px">
												<b>性能</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>改善性能</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>避免多层嵌套容器</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">一条好经验是避免容器的嵌套超过三层</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">用 spacer 对象来填充不需要的空白</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>绝对定位和缩放</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">每个容器及其子对象大小和位置的计算会占用大量资源</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">
												<b>对象位置固定编码</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 64px">使用 Canvas 容器，其它类型的容器（如 Vbox）无法使用绝对位置</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">
												<b>将对象宽度和高度固定编码</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 64px">可减轻相对布局管理器的处理负荷，从而加速容器和控件的创建</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>避免的常见容器冗余</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">&lt;mx:Panel&gt; 标签中的 VBox 容器</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">&lt;mx:Application&gt; 标签中的 VBox</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">容器作为 MXML 组件的顶层标签,能不用时可以舍弃</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">MXML 组件外包上不必要的 VBox 容器来设置某些样式,可以在组件上设置样式</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">重新评价对容器的选择</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>改善性能感受</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>推迟实例化</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">在可以不必一个屏幕显示时可以使用</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">
												<b>Flex 中的导航条容器（ViewStack、Accordin、TabNavigator）中内置了推迟实例化,默认推迟实例化</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 64px">creationPolicy="auto,all,none"</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>渐进式布局</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">需要一个屏幕显示,但重绘有效率低时</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>使用运行时样式得到良好性能(不宜多用)</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">注意:第一次最好不要使用setStyle() 方法</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>样式使用</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">&lt;mx:Style&gt; 块中(作为 MXML 标签的一个显式属性)</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">外部 CSS 样式表,(全局样式)</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>数据服务</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>flash 安全沙箱</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">由于 Flash Player 安全沙箱的存在，对 web 服务的请求只能到 加载 SWF 文件的同一个域。</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">
												<b>使用代理(不在同一主机或域)</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 64px">useProxy="true"属性直接调用服务。</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">
												<b>不使用代理(在同一主机或域)</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 64px">useProxy="false"属性直接调用服务。终端服务必须有 crossdomain.xml 文件。</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">两种性能最好的发送数据方法是使用 HTTPService 的 XML 和使用 AMF 的 RemoteObject。</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">Web 服务代理 &lt;mx:WebService&gt;</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">远程对象代理&lt;mx:RemoteObject&gt;</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">HTTP 服务&lt;mx:HTTPService&gt;</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>实施</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>预编译 MXML 页</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">预编译应用程序还能使开发者分发不带源码的应用程序。</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td> </td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 16px">
												<b>flex</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">1.在 mx.swc 看原类中的一些函数</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>2. cellRenderer,labelFunction</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">查看 CellRenderer API </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>3.Effect 使用 改变显示效果&lt;mx:Effect&gt;</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">mouseDownEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">mouseOverEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">mouseUpEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">moveEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">resizeEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">showEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">mouseOutEffect </div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">hideEffect</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">3.其它技巧看 flexbook</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td> </td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 16px">
												<b>JavaScript</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">
												<b>1.直接使用 getUrl 使用JavaScript</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>打开全屏窗口</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">getUrl(javascript:void(window.open('test.mxml','newwindow','fullscreen=yes,type=fullWindow,scrollbars=no,directories=no,status=no,menubar=no')));</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 40px">
												<b>关闭当前窗口(无提示关闭)</b>
										</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 52px">getUrl(javascript:window.opener = 'dsg';window.close(););</div>
								</td>
						</tr>
						<tr align="right" bgcolor="#ffffff">
								<td align="left">
										<div style="MARGIN-LEFT: 28px">2.在生成的html 文件中加入 JavaScript ,通过 getUrl使用 JavaScript</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 16:23 <a href="http://www.blogjava.net/19851985lili/articles/93475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex: 使用setInterval 制作定时器 </title><link>http://www.blogjava.net/19851985lili/articles/93461.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93461.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93461.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93461.html</trackback:ping><description><![CDATA[
		<p>setInterval 函数是Action Script 的全局函数，在Action Script 3.0 中它 被封装在 flash.util 包中，详见<a href="http://livedocs.macromedia.com/labs/1/flex/langref/migration.html"><font color="#000080">http://livedocs.macromedia.com/labs/1/flex/langref/migration.html</font></a>， 它需要flash player 6 或以上版本的支持。</p>
		<p>setInterval 有两种用法：<br /><font face="Courier New">1.  setInterval(functionName:Function, interval:Number [, <code>param1:Object</code><code>, </code><code>param2</code><code>, ...,</code><code>paramN</code><code>]) </code></font><code>: Number<br /></code><font face="Courier New">这种使用方法是让flash player 每隔interval (ms)时间调用functionName()这个函数，不关心这个方法是哪个对象的，后面跟传入的参数；一般来说这些参数值用来为函数提供数据，而不是从函数里取出数据。</font></p>
		<p>
				<font face="Courier New">2.  setInterval(obj:Object, methodName:Function, interval:Number [, <code>param1:Object</code><code>, </code><code>param2</code><code>, ...,</code><code>paramN</code><code>]) </code></font>
				<code>: Number<br />这种方法调用obj 对象中的成员方法methodName，在flex 应用中必须使用这样的方法来实现定时调用的效果。这样的方式就能够，在methodName中就能够访问当前flex application的 成员变量或函数了。举个例子：<br />&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />&lt;mx:Application  initialize="initFunc()" xmlns:mx="<a href="http://www.macromedia.com/2003/mxml"><font color="#000080">http://www.macromedia.com/2003/mxml</font></a>"&gt;<br /> &lt;mx:Script&gt;<br /> &lt;![CDATA[<br />  var count:Number;<br />  function initFunc()<br />  {<br />   count = 60;<br />   <font color="#0000ff">setInterval(this, "countDown", 1000);</font><br />  }<br />  <br />  function countDown()<br />  {<br />   showLabel.text = count.toString() + "second to go";<br />   count -= 1;<br />   if(count == 0)<br />    timeUp();<br />  }<br />  <br />  function timeUp()<br />  {<br />   alert("Time is up");<br />  }<br /> ]]&gt;<br /> &lt;/mx:Script&gt;<br /> &lt;mx:Label id="showLabel"/&gt;<br />&lt;/mx:Application&gt;</code>
		</p>
		<p>
				<code>如果这里使用第一种方法的话 就会出现 countDown 函数不能访问到count 和 showLabel 这两个变量，功能就没法实现，虽然可以通过传参数的方法来传入count 和 label：<br /><font color="#0000ff">setInterval(countDown, 1000, count:Number, showLabel:mx.controls.Label);<br /></font>但是这样话 count-=1 并不起作用，所以根本不会count down。这个搞了我好久，开始没有看到第二种用法，大家要留意。</code>
		</p>
		<p>
				<code>好看一点的例子：</code>
		</p>
		<p>
				<code> function init()<br /> {</code>
				<code>
						<br />  var spanSec:Number=60*60 //an hour to go<br />  var nf:mx.formatter.NumberFormatter = new mx.formatters.NumberFormatter();<br />  nf.precision = 0;<br />  nf.rounding = "down";<br /> }</code>
		</p>
		<p>
				<code> function timeCountDown()<br /> {<br />  var hr:Number =parseInt(nf.format(spanSec/3600));<br />  var min:Number = parseInt(nf.format((spanSec - hr*3600)/60));<br />  var sec:Number = parseInt(nf.format(spanSec - 60*min - hr*3600));<br />  spanSec = spanSec - 1;<br />  countDownLabel.text="Time left: "+hr+":"+min+":"+sec; <br />  if(spanSec == 0)<br />  {<br />   submit();<br />  }<br />  <br /> }<br /><br /> function submit()<br /> {<br />    //do whatever you want<br /></code>
				<code> }<br /></code>
		</p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 15:44 <a href="http://www.blogjava.net/19851985lili/articles/93461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 mx:Loader 加载其他 flex application </title><link>http://www.blogjava.net/19851985lili/articles/93460.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93460.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93460.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93460.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93460.html</trackback:ping><description><![CDATA[
		<p>页面跳转在web application中很常用，但对于RIA 更多的事情放在client 端来做，RIA 并不是对于html ，jsp 的简单代替，而是提供了一种连贯用户界面体验，后台与服务器数据交互的机制。所以说一个 flex application调到另一个并不是RIA 的思想所在。</p>
		<p>RIA application 是一组view，而每个view 又有很多component 组成，所以说我们要做的就是在不同view 之间平滑切换，根本不会像html 页面跳转那样重新刷新页面。当然可以通过flash 的getUrl（）方法来请求以他页面从而跳转。</p>
		<p>  &lt;mx:Loader id="loader" width="100%" height="100%"  contentPath="aaa.mxml.swf" complete="loader.content.width = loader.maxWidth;" maintainAspectRatio="false" scaleContent="false" showBusyCursor="true" /&gt;</p>
		<p>就是在当前application 里再加载 aaa.mxml 到 这个tag 所在的容易内。mx:Loader 的几个属性比较重要，这样的设置能让 新加载的内容很好的显示出来，不会出现显示小了的现象。</p>
		<p>另外可以在 aaa.mxml 里只用 mx.core.Application.application 来访问顶层flex application，parentApplication来访问上一层flex application.<br /></p>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 15:42 <a href="http://www.blogjava.net/19851985lili/articles/93460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex配置过程总结(附注册码) </title><link>http://www.blogjava.net/19851985lili/articles/93438.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:52:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93438.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93438.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93438.html</trackback:ping><description><![CDATA[
		<div class="main">
				<table class="main" style="TABLE-LAYOUT: fixed" cellspacing="0" cellpadding="0" width="100%" border="0">
						<tbody>
								<tr>
										<td>
												<p>Flex的配置其实很简单，主要步骤如下：<br />　　<br />　　(一)安装JDK1.5。<br />　　<br />　　(二)安装Tomcat。<br />　　<br />　　确保安装成功再浏览器地址栏输入http://localhost:8080/，会看到Tomcat 的 欢迎界面，说明配置成功。<br />　　<br />　　(三)安装Flex,并将Flex.war解压。<br />　　<br />　　(四)在%Tomcat%\webapps\新建一个应用，目录名为FlexDemo，把Flex.war和Samples解压后的两个文件夹拷到FlexDemo目录下面，在浏览器地址栏输入samples的相应目录看到站点页面就算成功了。<br />　　<br />　　(五)再FlexBuilder1.5下配置Flex Site，目录指向FlexDemo目录，配置略。<br />　　<br />　　(六)在FlexDemo目录下新建一个index.mxml文件，如下：<br />　　<br />　　&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />　　<br />　　&lt;mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"&gt;<br />　　<br />　　&lt;mx:Label text="Hello World!"/&gt;<br />　　<br />　　&lt;mx:Label text="Hello World!" fontSize="40"/&gt;<br />　　<br />　　&lt;/mx:Application&gt;<br />　　<br />　　(七)重新启动tomcat,如果看到欢迎界面，配置成功。</p>
												<font color="#ff0000">注册码见：</font>
												<br clear="all" />
										</td>
								</tr>
						</tbody>
				</table>
		</div>
		<a name="more">
		</a>
		<div class="mainmore">
				<p>
						<strong>Flex注册码：</strong>
						<br />Macromedia Flex v1.5 serial number<br />FED150-57315-34103-97272<br />FED150-56814-64303-55842<br />FED150-53915-35503-00288<br /><br />Macromedia Flex v1.5 for IBM AIX serial number<br />FED150-54210-04403-94145<br />FED150-54612-61803-20718<br />FED150-55513-34203-79288<br /><br />Macromedia Flex v1.5 for Solaris serial number<br />FED150-59719-14103-38932<br />FED150-50412-41703-25976<br />FED150-54010-42203-15919<br /><br />Macromedia Flex v1.5 for Linux serial number<br />FED150-52212-67203-94490<br />FED150-53317-38603-01968<br />FED150-56014-42103-29193<br /></p>
				<p>
						<strong>Macromedia Flex Builder v1.5</strong>
						<strong>注册码</strong>:<br />FBD100-54812-25364-31944<br />FBD100-53317-54264-61140</p>
		</div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:52 <a href="http://www.blogjava.net/19851985lili/articles/93438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Macromedia Flex 安装注册方法 </title><link>http://www.blogjava.net/19851985lili/articles/93429.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:33:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93429.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93429.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93429.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93429.html</trackback:ping><description><![CDATA[
		<p>Flex是作为Java应用程序服务器的模块形式存在,用来解析MXML文件生成SWF文件.<br />试用版的Flex自带一个Java应用程序服务器(JRun4)</p>
		<div>先看看你的机器和系统达到安装Flex的要求了吗?<br /><a href="http://www.macromedia.com/software/flex/productinfo/systemreqs/"><font color="#000080">http://www.macromedia.com/software/flex/productinfo/systemreqs/</font></a><br /><br />再来看看Flex应用程序都能做写什么事情呢？<br /><a href="http://flexapps.macromedia.com/flex15/explorer/explorer.mxml"><font color="#000080">http://flexapps.macromedia.com/flex15/explorer/explorer.mxml</font></a><a href="http://www.macromedia.com/flex/samples/"></a><br /><br />我们开始安装了,直接选择Integrated JRun4/Macromedia Flex(整合JRun4/Flex)安装.<br />装完后启动JRun4,打开浏览器输入下面地址就可以看到例子.<br /><a href="http://localhost:8700/samples"><font color="#000080">http://localhost:8700/samples</font></a><p>试用版以两种模式运行:<br />1,试用模式(只能使用60天,不限制功能和访问IP)<br />试用模式过期后自动变成开发模式<br />2,开发模式(无限使用时间,但只允许5个IP访问)<br />这两种模式编译生成的SWF文件都会在一天后失效.<br />Flex试用版输入正确注册码后就变成正式版,也就没有了上面的那些限制.</p><p>正式版的Flex安装好后安装目录下有三个WAR文件<br />1:flex.war(核心模块)<br />2:samples.war(例子)<br />3:profiler.war(应用程序监视器,查看应用程序运行情况和检测瓶颈问题.)<br />使用之前你要做的事情就是把他们放到JAVA应用程序服务器默认站点根目录下解开,然后重启服务器就可用了.<br />可以使用Winzip解压,或者在命令提示符下输入:<br />jar -vxf 要解压的文件.war</p><p>JAVA应用程序服务器推荐使用Resin或TOMCAT.<br />官方给出支持的应用程序服务器列表如下:</p><li>Macromedia JRun 4 Updater 2 
</li><li>IBM WebSphere Application Server 5 
</li><li>BEA WebLogic Server 7 or 8.1 
</li><li>Tomcat 4.1.29 or 5.0.18 <br /><br />具体配置方法看Luar的文章:<br /><a href="http://www.luar.com.hk/flashbook/archives/000260.php"><font color="#000080">http://www.luar.com.hk/flashbook/archives/000260.php</font></a><p><br />正版用户升级为正式版的方法:<br />要升级为正式版,你必须提供你的注册码信息 (购买Flex后即可获得).<br />需要到命令提示符进入Macromedia/flex/bin目录下</p><p>如果安装选择的独立Flex,输入下面命令:<br />licensetool -install 注册码 ../flex.war<br />licensetool -install 注册码 ../samples.war</p><p>如果安装选择的是整合JRun4/Flex,输入下面命令:<br />licensetool -install 注册码 ../jrun4/servers/default/flex<br />licensetool -install 注册码 ../jrun4/servers/default/samples</p></li></div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:33 <a href="http://www.blogjava.net/19851985lili/articles/93429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex组件篇：Button </title><link>http://www.blogjava.net/19851985lili/articles/93426.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93426.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93426.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93426.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="BACKGROUND: #f9f9f9; MARGIN: 7.5pt 3pt; LINE-HEIGHT: 155%; TEXT-ALIGN: left; mso-pagination: widow-orphan" align="left">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">Button</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件是</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">Flex</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的最常用的控制组件之一，最普通的事件响应是鼠标单击。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
				</span>
				<strong>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建</span>
				</strong>
				<strong>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<font face="Times New Roman">Button</font>
						</span>
				</strong>
				<strong>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件</span>
				</strong>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">
						<?XML:NAMESPACE PREFIX = O /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l48 level1 lfo62; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Button</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">id</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'button1'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">label</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'Hello</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">world!'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">width</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'100'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
				</p>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
				</span>
				<strong>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">添加按钮图标</span>
				</strong>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
						<font face="Times New Roman">Flex</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中允许在编译的时候和运行的时候导入图片，但是按钮图标必须在编译的时候导入。必须使用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">@Embed</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">语法在</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">icon</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">属性中，在</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">Flex</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中可以支持</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">JPEG</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">GIF</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">SVG</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">SWF</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman"> PNG </font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">格式的文件。如：</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</div>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l59 level1 lfo63; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Button</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">label</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'About'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">icon</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'@Embed('</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">images</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">logo</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">.</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">gif</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">')'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="BACKGROUND: #f9f9f9; MARGIN: 0cm 3pt 0pt; LINE-HEIGHT: 155%">
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">千万要注意的是：如果要导入</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">swf</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的话，不能使用任何</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">AS2.0</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的类和</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">Flash</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件，否则就无法导入。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另外的方法是可以在脚本中使用</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">[Embed]</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标记来添加。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l28 level1 lfo64; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Script</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&gt;<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l28 level1 lfo64; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">2.<span style="FONT: 7pt 'Times New Roman'"></span></span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;![</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">CDATA</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">[<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l28 level1 lfo64; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">3.<span style="FONT: 7pt 'Times New Roman'"></span></span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体">    </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">[</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Embed</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">(</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">source</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'images/logo.png'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">)]<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l28 level1 lfo64; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">4.<span style="FONT: 7pt 'Times New Roman'"></span></span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">]]&gt;<o:p></o:p></span>
				</p>
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l28 level1 lfo64; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">5.<span style="FONT: 7pt 'Times New Roman'"></span></span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;/</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Script</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<br />
						</span>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">假如你必须要在运行的时候导入图片的话，请使用</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<font face="Times New Roman">&lt;mx:Image&gt;</font>
						</span>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标记替换</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<font face="Times New Roman">&lt;mx:Button&gt;</font>
						</span>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标记。例如：</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<o:p>
								</o:p>
						</span>
				</p>
		</div>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo65; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Image</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">source</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'@Embed('</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">images</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">logo</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">.</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">gif</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">')'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
				</p>
		</div>
		<p class="MsoNormal" style="BACKGROUND: #f9f9f9; MARGIN: 0cm 3pt 0pt; LINE-HEIGHT: 155%">
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
				</span>
				<strong>
						<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">添加事件响应</span>
				</strong>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<br />
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最常用的按钮事件响应是</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<font face="Times New Roman">Click</font>
				</span>
				<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事件</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l56 level1 lfo66; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Button</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">label</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'Save'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">width</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'90'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">click</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'save()'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<br />
						</span>
						<strong>
								<span style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用按钮效果</span>
						</strong>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; mso-bidi-font-size: 10.5pt">
								<o:p>
								</o:p>
						</span>
				</p>
		</div>
		<div style="BORDER-RIGHT: #d4d4d4 0.75pt dotted; PADDING-RIGHT: 2pt; BORDER-TOP: #d4d4d4 0.75pt dotted; PADDING-LEFT: 2pt; BACKGROUND: #fbfaf8; PADDING-BOTTOM: 2pt; BORDER-LEFT: #d4d4d4 0.75pt dotted; PADDING-TOP: 2pt; BORDER-BOTTOM: #d4d4d4 0.75pt dotted">
				<p class="MsoNormal" style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 3pt 0pt 44pt; BORDER-LEFT: medium none; TEXT-INDENT: -18pt; LINE-HEIGHT: 155%; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-alt: dotted #D4D4D4 .75pt; mso-padding-alt: 2.0pt 2.0pt 2.0pt 2.0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo67; tab-stops: list 36.0pt">
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">&lt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mx</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">:</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">Button</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">id</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'myButton'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #0000cc; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">mouseOverEffect</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">=</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">'Zoom'</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #cc0000; FONT-FAMILY: 'Courier New'; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 黑体; mso-fareast-font-family: 黑体"> </span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #006600; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">/&gt;</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 黑体; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">
						</span>
						<span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">
								<o:p>
								</o:p>
						</span>
				</p>
		</div>
<img src ="http://www.blogjava.net/19851985lili/aggbug/93426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:25 <a href="http://www.blogjava.net/19851985lili/articles/93426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex组件篇：DateChooser </title><link>http://www.blogjava.net/19851985lili/articles/93424.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93424.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93424.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93424.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93424.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 创建DateChooser组件												下面的例子创建了一个日历组件，并且选中日期为						2004				年						12				月						22				号：																																								&lt;						mx...&nbsp;&nbsp;<a href='http://www.blogjava.net/19851985lili/articles/93424.html'>阅读全文</a><img src ="http://www.blogjava.net/19851985lili/aggbug/93424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:19 <a href="http://www.blogjava.net/19851985lili/articles/93424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex组件篇：DateField </title><link>http://www.blogjava.net/19851985lili/articles/93422.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93422.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93422.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93422.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93422.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93422.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DateField								也是一个日期选择组件，点击会调用										DateChooser								组件，一般用于日期的选择。																		创建										DateField								的方式很简单，如：																												...&nbsp;&nbsp;<a href='http://www.blogjava.net/19851985lili/articles/93422.html'>阅读全文</a><img src ="http://www.blogjava.net/19851985lili/aggbug/93422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:09 <a href="http://www.blogjava.net/19851985lili/articles/93422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flex组件篇：HSlider和VSlider </title><link>http://www.blogjava.net/19851985lili/articles/93418.html</link><dc:creator>☜♥☞MengChuChen</dc:creator><author>☜♥☞MengChuChen</author><pubDate>Fri, 12 Jan 2007 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/19851985lili/articles/93418.html</guid><wfw:comment>http://www.blogjava.net/19851985lili/comments/93418.html</wfw:comment><comments>http://www.blogjava.net/19851985lili/articles/93418.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/19851985lili/comments/commentRss/93418.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/19851985lili/services/trackbacks/93418.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Flex								提供了水平和垂直两种滑动杆。																		基本使用方法：																																																												01: mx:HSlider 												创建水平滑动杆											...&nbsp;&nbsp;<a href='http://www.blogjava.net/19851985lili/articles/93418.html'>阅读全文</a><img src ="http://www.blogjava.net/19851985lili/aggbug/93418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/19851985lili/" target="_blank">☜♥☞MengChuChen</a> 2007-01-12 14:02 <a href="http://www.blogjava.net/19851985lili/articles/93418.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>