<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5001860689987909950</id><updated>2011-11-28T08:05:19.733+08:00</updated><category term='凭栏阁'/><category term='FLASH'/><category term='photo'/><category term='AS3.0'/><category term='FLEX'/><category term='读书笔记'/><title type='text'>TYPHONE</title><subtitle type='html'>A wind who can bring the rain.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default?start-index=101&amp;max-results=100'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>119</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8047470259222516315</id><published>2007-08-12T11:15:00.000+08:00</published><updated>2007-08-12T11:32:25.913+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Proxy: getProperty and setProperty</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;getProperty and setProperty are methods used in Proxy classes that are used to manage property access. When a property not defined within a proxy instance is retrieved, getProperty is called to retrieve it. When set, setProperty is used to set it.&lt;br /&gt;&lt;br /&gt;As with all methods of the Proxy class, getProperty and setProperty are defined within the flash_proxy namespace (flash.utils.flash_proxy) to prevent conflicts with public. When you override these methods within your own Proxy subclasses, you will want to be sure to use the flash_proxy namespace.&lt;br /&gt;&lt;br /&gt;The following example, CustomObject, extends Proxy and uses getProperty and setProperty to manage dynamic properties set for its instances.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;utils&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Proxy&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;utils&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;flash_proxy&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;dynamic&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; CustomObject &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Proxy {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; classProperty:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"classProperty"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// generic class variable&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; customProperties:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// store custom variables&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; CustomObject() {&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// called when getting dynamic variables&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        override flash_proxy &lt;b&gt;function&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;getProperty&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:*):* {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;if&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; (&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; customProperties) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; customProperties[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;];&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"Property does not exist"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// called when setting dynamic variables&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        override flash_proxy &lt;b&gt;function&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;setProperty&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:*, value:*):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;            customProperties[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;] = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"Property "&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;+&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;+&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;": "&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;+value;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// usage example&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; myObj:CustomObject = &lt;b&gt;new&lt;/b&gt; CustomObject();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;foo&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Property does not exist&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;foo&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"bar"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;foo&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Property foo: bar&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;classProperty&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// classProperty&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;classProperty&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"bar"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myObj.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;classProperty&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// bar &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Notice that when getting and setting the foo property, getProperty and setProperty are used to control its ultimate value which is stored within a customProperties defined for the class. Also, since classProperty is not a dynamic variables, instead being one defined for the class, getProperty and setProperty to not apply.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8047470259222516315?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8047470259222516315/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8047470259222516315&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8047470259222516315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8047470259222516315'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/08/proxy-getproperty-and-setproperty.html' title='Proxy: getProperty and setProperty'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6975094576120217113</id><published>2007-08-11T19:23:00.000+08:00</published><updated>2007-08-11T19:39:03.425+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='读书笔记'/><title type='text'>Design Pattern: Bridge 模式</title><content type='html'>&lt;div style="text-align: left;"&gt;在 &lt;span lang="EN-US"&gt;&lt;a href="http://www.nshen.net/designpattern/DesignPattern/GoF.htm"&gt;Gof &lt;span lang="EN-US"&gt;&lt;span lang="EN-US"&gt;的書&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;中指到&lt;span lang="EN-US"&gt;Bridge&lt;/span&gt;模式的目的：「將抽象部份與它的實現部份分離，使它們都可以獨立地變化。」&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:12;"  &gt;&lt;span style="font-size:100%;"&gt;這句話寫得簡短，這邊再作進一步的解釋，抽象部份指的是行為方面定義，實現方面指的是與特定平台相依的代碼實現。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:宋体;font-size:12;"  &gt;&lt;span style="font-size:100%;"&gt;一個實際的例子在&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;Gof&lt;/span&gt;&lt;span style="font-size:100%;"&gt;書中有提到，假設您定義了一個&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;IWindo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;介面，這個介面只定義一些抽象的繪圖行為，而不涉及平台的實作，今天您可以繼承這個類 來開發適用於&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;X Windo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;XWindow&lt;/span&gt;&lt;span style="font-size:100%;"&gt;類，也可以繼承這個類來開發適用於&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;Windows X&lt;/span&gt;&lt;span style="font-size:100%;"&gt;系統的&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;WindowsXP&lt;/span&gt;&lt;span style="font-size:100%;"&gt;類，為了善用系統資源，您在實作&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;IWindow&lt;/span&gt;&lt;span style="font-size:100%;"&gt;介面時，會將與系統相關的實現代碼撰寫在介面的實作中。&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 187px; height: 249px;" src="http://www.nshen.net/designpattern/DesignPattern/images/bridge-1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:12;"  lang="EN-US" &gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" alt="Bridge" style="'width:156pt;height:206.25pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\typhone\LOCALS~1\Temp\msohtml1\02\clip_image001.jpg" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-1.jpg"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/02/clip_image001.jpg" style="height: 275px; width: 208px;" alt="Bridge" title="Bridge" shapes="_x0000_i1025" border="0" height="275" width="208" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:12;"  &gt;&lt;span style="font-size:100%;"&gt;假設今天您繼承了&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;IWindow&lt;/span&gt;&lt;span style="font-size:100%;"&gt;介面撰寫了一個&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;I3DWindo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;介面，當中擴充一個&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;drawBox()&lt;/span&gt;&lt;span style="font-size:100%;"&gt;方法用於&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;3&lt;/span&gt;&lt;span style="font-size:100%;"&gt;圖形的繪製，簡單的說，&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt; I3DWindo&lt;/span&gt;&lt;span style="font-size:100%;"&gt;介面擴充了抽象行為，為了讓實現&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;I3DWindow&lt;/span&gt;&lt;span style="font-size:100%;"&gt;的類別也能在&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;XWindow&lt;/span&gt;&lt;span style="font-size:100%;"&gt;與&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:100%;"&gt;Windows XP&lt;/span&gt;&lt;span style="font-size:100%;"&gt;兩個不同的系統中運行，您必須再度撰寫與系統相關的實現代碼。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.nshen.net/designpattern/DesignPattern/images/bridge-2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:宋体;font-size:12;"  &gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:12;"  lang="EN-US" &gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/02/clip_image002.jpg" style="height: 375px; width: 433px;" alt="Bridge" title="Bridge" shapes="_x0000_i1026" border="0" height="375" width="433" /&gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/02/clip_image002.jpg" style="height: 375px; width: 433px;" alt="Bridge" title="Bridge" shapes="_x0000_i1026" border="0" height="375" width="433" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:宋体;font-size:100%;"  &gt;簡單的說，抽象行為定義與平台相關實現混雜在一起了，為了將抽象部份與它的實現部份分離，使它們都可以獨立地變化，您可以使用以下的結構。&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:100%;"  lang="EN-US" &gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1027" type="#_x0000_t75" alt="Bridge" style="'width:476.25pt;height:275.25pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\typhone\LOCALS~1\Temp\msohtml1\02\clip_image003.jpg" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-3.jpg"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/02/clip_image003.jpg" style="height: 367px; width: 635px;" alt="Bridge" title="Bridge" shapes="_x0000_i1027" border="0" height="367" width="635" /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;    &lt;/div&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.nshen.net/designpattern/DesignPattern/images/bridge-3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;span style=";font-family:宋体;font-size:100%;"  lang="EN-US" &gt;在上圖的右邊中，與平台相關的實現部份，被與右邊抽象行方面的發展分開了，左邊的抽象部份您可以一直發展下去，而不再因為綁定了平台特定實作方法，而使得整個結構越來越失去彈性。&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Bridge&lt;/span&gt;模式&lt;span lang="EN-US"&gt;UML &lt;/span&gt;類別結構圖如下&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;" class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nshen.net/designpattern/DesignPattern/images/bridge-4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.nshen.net/designpattern/DesignPattern/images/bridge-4.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:宋体;font-size:12;"  lang="EN-US" &gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/02/clip_image004.jpg" style="height: 17px; width: 51px;" alt="Bridge" title="Bridge" shapes="_x0000_i1028" border="0" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-6975094576120217113?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/6975094576120217113/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=6975094576120217113&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6975094576120217113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6975094576120217113'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/08/design-pattern-bridge.html' title='Design Pattern: Bridge 模式'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-5979852457118871519</id><published>2007-08-11T18:49:00.000+08:00</published><updated>2007-08-11T18:50:17.114+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>in Operator</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;The in operator (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/operators.html#in" target="_blank"&gt;in operator&lt;/a&gt;) is a new operator in ActionScript 3 that is used to see if a value exists within an object. This is similar to hasOwnProperty but will also work for inherited values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"PI"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Math&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);         &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"myProperty"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Math&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false &lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-5979852457118871519?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/5979852457118871519/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=5979852457118871519&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5979852457118871519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5979852457118871519'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/08/in-operator.html' title='in Operator'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-3865072088789002692</id><published>2007-06-17T22:34:00.000+08:00</published><updated>2007-06-17T22:35:52.146+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Proxy Class</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 introduces a new class to take the place of ActionScript 1 and ActionScript 2's addProperty method and __resolve handler for objects. This class is the Proxy Class (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/Proxy.html" target="_blank"&gt;flash.utils.Proxy&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In ActionScript 1 and ActionScript 2: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;addProperty()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt; - used to dynamically      add a getter/setter property for an object or class. This dynamically      created a variable that was set and whose value was retrieved through      functions passed into the addProperty call. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;__resolve&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt; - a handler that, when      defined for an object, would be called when a property or method was      accessed that did not exist for that object. This let you capture      unresolved references from an object and react accordingly&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;In ActionScript 3 you create a class that extends Proxy to take advantage of all its features. They include &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing property setting &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing property getting &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing property checking (if exists) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing property deletion &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing method calls &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing decendant access &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Capturing attribute checking &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Handling property iteration&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Though these features hold a lot of advange over what was available with AS1 and AS2, there are some drawbacks to using Proxy: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Instance typing is limited since classes need to      extend Proxy; you tend to have to rely on interfaces &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;You cannot have Proxy classes that inherit from      classes that don't already inherit from Proxy &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Display objects cannot be Proxy classes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Proxy classes are generally used for variable container classes that need extra the flexibility.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The Proxy class will be covered in more detail in later tips&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-3865072088789002692?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/3865072088789002692/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=3865072088789002692&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3865072088789002692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3865072088789002692'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/proxy-class.html' title='Proxy Class'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-7176102278439708080</id><published>2007-06-13T22:07:00.000+08:00</published><updated>2007-06-13T22:09:33.111+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>MXMLC: SWF Metadata Tag</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;If you're using MXMLC (the MXML and ActionScript 3 stand alone, command line compiler provided with the free &lt;a href="http://www.adobe.com/products/flex/sdk/" target="_blank"&gt;Flex 2 SDK&lt;/a&gt;) to compile your ActionScript 3 SWFs, you can use the SWF metadata tag to set common properties for your movie. The SWF metadata tag supports 4 properties &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;width &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;height &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;frameRate &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;backgroundColor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;    [SWF(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;width&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"500"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;height&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"450"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, frameRate=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"24"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;backgroundColor&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"#FFFFFF"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)]&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; MyApp &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;When compiled, the above makes a SWF 500x450 in size with a background color of white and a framerate of 24.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-7176102278439708080?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/7176102278439708080/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=7176102278439708080&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7176102278439708080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7176102278439708080'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/mxmlc-swf-metadata-tag.html' title='MXMLC: SWF Metadata Tag'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-4509393104970636105</id><published>2007-06-12T11:36:00.000+08:00</published><updated>2007-06-12T11:41:24.365+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='凭栏阁'/><title type='text'>放松下身上的壓力，很好聽的歌曲哦</title><content type='html'>&lt;div class="BlueBG"&gt;&lt;strong&gt;歌曲：&lt;/strong&gt;&lt;b&gt;&lt;span style="color: rgb(225, 9, 0);"&gt;夏虫&lt;/span&gt;&lt;/b&gt;&lt;/div&gt; &lt;div style="padding-top: 10px; padding-left: 15px;"&gt; &lt;strong&gt;歌手：&lt;/strong&gt;&lt;a href="http://mp3.baidu.com/m?tn=baidump3&amp;ct=134217728&amp;amp;lm=-1&amp;word=%C7%E5%B7%E7%D7%E9%BA%CF"&gt;清风组合&lt;/a&gt; &lt;strong&gt;专辑：&lt;/strong&gt;&lt;a href="http://mp3.baidu.com/m?tn=baidump3&amp;amp;ct=134217728&amp;lm=-1&amp;amp;word=%D7%EE%B0%AE%B5%C4%C7%E5%B7%E7%7E"&gt;最爱的清风~&lt;/a&gt; &lt;/div&gt; &lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;虫儿爬在我的琴上听着乐曲轻轻响&lt;br /&gt;等着音符划过脸上织出透明的情网&lt;br /&gt;蛐蛐蹲在我的身旁哼着动听的声响&lt;br /&gt;心中却想着明天的午餐和谁去分享&lt;br /&gt;不能忘那寂寥&lt;br /&gt;到少现实自己扛&lt;br /&gt;多盼望放下所有奔向虫儿的家乡&lt;br /&gt;&lt;br /&gt;虫儿飞虫儿叫虫儿追着虫儿跑&lt;br /&gt;虫儿笑虫儿跳虫儿伴着我逍遥&lt;br /&gt;虫儿美虫儿俏虫儿都很爱炫耀&lt;br /&gt;虫儿疯虫儿闹虫儿总能感动所有煎熬&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;风儿停在我的身上亲吻我着的肩膀&lt;br /&gt;我并不在意只是觉得它稍稍有点痒&lt;br /&gt;听过虫儿你呀这个世界变的更明亮&lt;br /&gt;就算乌云遮天也能看到星星的微光&lt;br /&gt;不去想真荒唐&lt;br /&gt;自己让自己受伤&lt;br /&gt;多希望放下一切冲向虫儿的天堂&lt;br /&gt;&lt;br /&gt;虫儿飞虫儿叫虫儿追着虫儿跑&lt;br /&gt;虫儿笑虫儿跳虫儿伴着我逍遥&lt;br /&gt;虫儿美虫儿俏虫儿都很爱炫耀&lt;br /&gt;虫儿疯虫儿闹虫儿总能感动所有煎熬&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-4509393104970636105?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/4509393104970636105/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=4509393104970636105&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4509393104970636105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4509393104970636105'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/blog-post_12.html' title='放松下身上的壓力，很好聽的歌曲哦'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-4851495481355214001</id><published>2007-06-11T09:29:00.000+08:00</published><updated>2007-06-11T09:30:43.580+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Prevent Overriding and Subclassing with final</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;The final keyword (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#final" target="_blank"&gt;Toplevel final keyword&lt;/a&gt;) is an attribute for classes and methods that lets you prevent overriding (methods) and subclassing (classes).&lt;br /&gt;&lt;br /&gt;When a method is marked as final, no subclasses of that class can create a method of the same name that overrides that method. This ensures that when the method is called, it will always be the method marked final.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;final &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; methodName() {&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// your statements here &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Similarly, for classes, if a class is marked final, no subclasses can be created that extend that class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package{&lt;br /&gt;    final &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; ClassName {&lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// your statements here &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Note: it is pointless to have methods marked as final in a class marked as final since that class cannot be extended. Since it cannot be extended, there would be no way for methods to be overridden as that only occurs within subclasses of the original class.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-4851495481355214001?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/4851495481355214001/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=4851495481355214001&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4851495481355214001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4851495481355214001'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/prevent-overriding-and-subclassing-with.html' title='Prevent Overriding and Subclassing with final'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6056274335768472453</id><published>2007-06-07T15:41:00.000+08:00</published><updated>2007-06-07T15:43:15.077+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><title type='text'>太有才了!!!</title><content type='html'>&lt;embed src="http://player.youku.com/player.php/sid/XNDg2Nzc1Ng==/v.swf" quality="high" width="450" height="372" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-6056274335768472453?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/6056274335768472453/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=6056274335768472453&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6056274335768472453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6056274335768472453'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/blog-post.html' title='太有才了!!!'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-4220387448205121044</id><published>2007-06-06T11:17:00.000+08:00</published><updated>2007-06-06T11:21:20.476+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Creating a mouseWithin Event</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;There are times where you might want to have actions only run when the mouse is within a sprite or movie clip. Director's Lingo programing language has a mouseWithin event that facilitates this. Flash, however, has no such event. However, with ActionScript 3's event model, you can easily create your own.&lt;br /&gt;&lt;br /&gt;A mouseWithin event is essentially an enterFrame event that only runs when the mouse is within or touching the display object in which its associated. So, in making your own, all you need to do is define an enterFrame event when the mouse enters the object and remove it when the mouse leaves the object. And yes, technically you could do this in ActionScript 1 and ActionScript 2, but it would mean using up event handlers like onRollOver and onEnterFrame which could interfere with other actions for your movie clip (since you can only have one per movie clip).&lt;br /&gt;&lt;br /&gt;For ActionScript 3, implementing a mouseWithin event just means giving your sprite or movie clip class a few event handlers and setting up some listeners, e.g.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// methods managing mouseWithin&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; addMouseWithin(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    addEventListener(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;ENTER_FRAME&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, mouseWithin);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; removeMouseWithin(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    removeEventListener(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;ENTER_FRAME&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, mouseWithin);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; mouseWithin(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    dispatchEvent(&lt;b&gt;new&lt;/b&gt; MouseEvent(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"mouseWithin"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// in constructor&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; MySpriteClass() {&lt;br /&gt;    addEventListener(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;MOUSE_OVER&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, addMouseWithin);&lt;br /&gt;    addEventListener(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;MOUSE_OUT&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, removeMouseWithin);&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;With that, a mouseWithin event fires every frame whenever the mouse is within the sprite. To add listeners for it, just use:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;addEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"mouseWithin"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, mouseWithinHandler);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-4220387448205121044?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/4220387448205121044/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=4220387448205121044&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4220387448205121044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4220387448205121044'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/creating-mousewithin-event.html' title='Creating a mouseWithin Event'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8053439447571483343</id><published>2007-06-04T10:26:00.000+08:00</published><updated>2007-06-04T11:26:39.894+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>dynamic is Not Inherited</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Like ActionScript 2, ActionScript 3 allows you to create dynamic classes using the dynamic keyword (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#dynamic" target="_blank"&gt;dynamic keyword&lt;/a&gt;). Dynamic classes are classes you can add properties to dynamically without needing to declare or define them within the class definition. An example of a dynamic class would be Array. When you create an Array instance, you can assign to it any variariable you want despite it not being within the Array class definiton.&lt;br /&gt;&lt;br /&gt;In AS2, when you extended a class that was dyanmic, that subclass too became dynamic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// superclass.as&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;dynamic&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; superclass {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// subclass.as&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; subclass &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; superclass {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// main movie&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; instance:subclass = &lt;b&gt;new&lt;/b&gt; subclass();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(instance.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;anything&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// ok since subclass inherited dynamic &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;This is no longer the case with AS3. Subclasses of dynamic classes are no longer dynamic unless specified as being dynamic themselves&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// superclass.as&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;package {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;dynamic&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; superclass {&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// subclass.as&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;package {&lt;br /&gt;    &lt;b&gt;class&lt;/b&gt; subclass &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; superclass {&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// main movie&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; instance:subclass = &lt;b&gt;new&lt;/b&gt; subclass();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(instance.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;anything&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// error, property not defined (not dynamic) &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8053439447571483343?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8053439447571483343/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8053439447571483343&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8053439447571483343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8053439447571483343'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/dynamic-is-not-inherited.html' title='dynamic is Not Inherited'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-2140271351752554219</id><published>2007-06-01T15:16:00.000+08:00</published><updated>2007-06-01T15:17:22.817+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Namespaces: Name Qualifier Operator (::)</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;When you want to access a class member in a namespace, you need to reference that member through the namespace in which it was defined. One way to do this is through the name qualifier operator (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/operators.html#name_qualifier" target="_blank"&gt;name qualifier operator&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The name qualifier operator takes the form of two colons that connects the namespace with the member of the class you are trying to access that exists within that namespace, eg. namespace::member. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; UsingNameSpaces {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace company = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"http://www.example.com/company"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace individual = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"http://www.example.com/individual"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        individual &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; UsingNameSpaces(){&lt;br /&gt;            company::showValue(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// traces 10&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            individual::showValue(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// traces 2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(company::value);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        individual &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(individual::value);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Note that even though showValue is being called within the namespace, the namespace is still needed to reference variables (or other members) in namespaces used within the function body.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-2140271351752554219?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/2140271351752554219/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=2140271351752554219&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2140271351752554219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2140271351752554219'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/06/namespaces-name-qualifier-operator.html' title='Namespaces: Name Qualifier Operator (::)'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-5806182142074187697</id><published>2007-05-31T12:02:00.001+08:00</published><updated>2007-05-31T12:04:25.294+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Support for Namespaces</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 now supports namespaces. Namespaces in AS3 are similar to namespaces in XML and provide a way to separate code in to separate "spaces" or collections identifiable through a name (namespace). Namespaces in this respect act much like packages. In the same manner that packages allow you to have different classes with the same name in one application (only defined in different packages), namespaces allow you to have different methods with the same name in one class (defined in different namespaces). Though you may not have known it, chances are you've already been using namespaces. Predefined namespaces include public, private, protected, and internal.&lt;br /&gt;&lt;br /&gt;When you use a namespace, you have to declare it just like you declare any other class member. Namespaces are declared using the namespace keyword (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#namespace" target="_blank"&gt;namespace Keyword&lt;/a&gt;). Once declared you can use it to separate members into different namespaces. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; UsingNameSpaces {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace company;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace individual;&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        individual &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; UsingNameSpaces(){&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        individual &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Two namespaces were used here, company and individual. They were used to defined a value variable and a showValue method - one for each namespace. Though they have the same names, since they are in different namespaces, they are allowed.&lt;br /&gt;&lt;br /&gt;Additionally, namespaces can otionally be defined with a namespace uri when declared in the class:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; UsingNameSpaces {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace company = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"http://www.example.com/company"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; namespace individual = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"http://www.example.com/individual"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        individual &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; UsingNameSpaces(){&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        company &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        individual &lt;b&gt;function&lt;/b&gt; showValue() {&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-5806182142074187697?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/5806182142074187697/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=5806182142074187697&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5806182142074187697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5806182142074187697'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/support-for-namespaces_31.html' title='Support for Namespaces'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-7661783616807308756</id><published>2007-05-30T11:55:00.000+08:00</published><updated>2007-05-30T11:56:08.638+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='凭栏阁'/><title type='text'>中国应借地谋势，共建“大金鸡”格局[轉]</title><content type='html'>&lt;div id="source"&gt;发贴者：&lt;a href="http://bbs.xilu.com/cgi-bin/tools/passmail?nick=akaaaa" target="_blank"&gt;akaaaa&lt;/a&gt;　2007/05/29 10:27　来源论坛：&lt;a href="http://emas.bbs.xilu.com/" target="_blank" class="red b"&gt;东方军事         &lt;/a&gt;　点击：2175次　&lt;span class="red"&gt;&lt;a href="http://bbs14.xilu.com/CGI/junshi/emas/344153.html#say"&gt;我来说两句&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;   &lt;div id="text" class="zhengwen"&gt;     如果把我国的蓝色海洋国土作为背景，只看陆地国土的形状，确实象一只昂首挺立的雄鸡，屹立在世界的东方。对于这只“难鸡”，笔者收复领土联盟曾在《破局： 中国地缘战略的思考》、《战略支点支撑起中国的大国雄心》等一系列帖子中作过深入的探讨，作为一个大国，中国有不可替代的优势，也有受困于人的劣势。如何 发扬我国的优势，补救面临的劣势？收复领土联盟提出了借地谋势，共建“大金鸡”格局的战略构想。&lt;br /&gt;&lt;br /&gt;    此构想从周边各国战略定位的角 度，探讨一下中国与部分国家实现和谐共赢之策。因本帖内容敏感，笔者曾犹豫过一段时间，怕被“有关部门”扣帽子、打棍子、抓辫子 、穿小鞋，也怕被外国敌 对势力用来炒作“中国威胁论”。 但这仅是收复领土联盟个人的一孔之见，影响微小，实行的可能性更小。何况一旦真正实行起来，对周边国家也只有好处，没有 坏处，实在没必要因噎废食。即使少数人想拿来作“中国威胁论”的论据，怕是也拿不到台面上。因此还是写出来的好。&lt;br /&gt;                        一、“大金鸡”格局的基本构想&lt;br /&gt;&lt;br /&gt;     “大金鸡”格局的构想是，立足于中国金鸡形状的本土，并以朝鲜半岛为“鸡嘴”，以蒙古为“鸡翅”，以缅甸和越南为两条“鸡腿”或者是“鸡爪”，借助上述周 边国家的地利优势，解决中国的“东北困局”和“马六甲困局”（相关论述见本人拙作），实现中国与周边国家的共同发展，共同进步，共同富裕，共同崛起。这与 我国 “和平崛起”，实行“睦邻、安邻、富邻”的友好政策，与周边国家世世代代作好邻居、好伙伴、好朋友的宗旨是一脉相承的，是不以领土占有为目的的一种 多边合作的构想。收复领土联盟觉得，还是先建立一个小范围的“和谐周边”作样板，再逐步开展“和谐世界”吧。但这种想法，仅是个人 的一厢情愿，至于周边 国家干不干，那就不好说了。收复领土联盟认为，这事急不得，慢慢来，不强求，不相逼，成熟一个，发展一个，最终周边的国家会找到各自的战略定位的。举个不 恰当的例子，这事就象现在的上合组织，作为观察员国的伊朗现在就想进来，但中俄现阶段还不能答应呢！&lt;br /&gt;&lt;br /&gt;                   二、周边小国应有恰当的国家战略定位&lt;br /&gt;&lt;br /&gt;     不谋全局者不足以谋一域，不谋万世者不足以谋一时。其实每个国家采取什么样的国家战略，就象一个人如何发展一样，有什么样的条件，采取什么样的方法，最终 能达到何种高度成就什么样的事业，自己应该有自知之明。一个国家也应该有自知之明，应该采取最有利于自身国家发展的战略。这是关系到一个国家长远发展的战 略定位、战略方向的大问题，也是关系到民族、民生福祉的大事，有关各国的当政者应当深思。&lt;br /&gt;&lt;br /&gt;    2006年上半年，巴基斯坦总统穆沙拉 夫公开说，巴基斯坦今后要把本国作为中国的能源走廊和贸易走廊，实际上是作为中国进出印度洋的一个战略走廊。并说要同中国共同崛起！这是对自己国家准确的 战略定位。收复领土联盟听着舒服，觉着佩服！事实上，这不但不丢人，还会极大的增强该国的战略地位和综合国力，是一举多得的好事！也是得民心，顺民意的英 明、务实之举。这对于周边其他小国有很大的借鉴意义和示范作用。周边小国不要觉得那样做成了中国的“小跟班”，低人一等，矮人一头，好象有一种不平等的耻 辱感，其实中国人对所有国家不分大小、强弱、贫富，都是平等相待、一视同仁的，并不会以老子国、老子党自居，不会去搞以大欺小、以强凌弱那一套的。象周边 的个别国家，在历史上未能准确定位，以国力之弱，作非分之想，行非分之事，差一点就国破族亡，教训不可谓不惨痛，不可不引以为戒。&lt;br /&gt;&lt;br /&gt; 三、共同的基础、共同的利益和共同的关切是共建“大金鸡”格局的有利条件&lt;br /&gt;&lt;br /&gt;     蒙古、朝鲜、韩国、缅甸、越南都是我周边的重要邻国，具有重要的战略地位。蒙古在历史上曾是我国领土，朝鲜、韩国、缅甸、越南在历史上曾是我藩属国。蒙古 族、朝鲜族、京族都是我国与周边的跨境民族，缅甸的边民与我国云南的边民有胞波情谊。应该说，中蒙朝韩缅越六国山水相连，地域相邻，历史相近，文化相通， 民族相亲，风俗相似，彼此在历史上曾经长期友好交往，共存共荣，共建“大金鸡”格局有着较好的历史积淀和心理基础，有着较为有利的条件。当然这些只是共 性，并且是从有利的方面来说的；虽然会面临着其他不利的因素，面临着曲折甚至反复，但为了区域共同利益，周边各国最终会走向理智、和平和合作的。&lt;br /&gt;&lt;br /&gt;                      （一）朝鲜半岛：锐利的“鸡嘴”&lt;br /&gt;&lt;br /&gt;     朝鲜半岛位于亚洲大陆东北部，三面环海，海岸线曲折漫长，北与中国接壤，东北角与俄罗斯相连，西隔渤海、黄海与中国大陆相望，东隔日本海与日本列岛相邻。 朝鲜半岛与我国陆海相连，是我东北地区的天然屏障，对我东北和京津地区的重要性是不言而喻的。朝鲜半岛直面日本列岛，距离日本本土非常近，且控制着日本本 土南北联系的要道，战略位置十分重要。我国在朝鲜有重大的安全利益，历史上曾多次为朝鲜半岛付出过重大的代价。明朝有援朝抗倭，清朝有黄海之战、甲午之 战，民国有抗日战争，建国后抗美援朝，历史已经无数次地证明：不论我国与朝鲜半岛国家间的关系如何，朝鲜半岛对于我国的安全屏障作用始终未变。朝鲜半岛国 家一旦与我国形成良好的战略协作关系，则说成会我雄鸡锐利的“鸡嘴”，对于我化解美日同盟、应对外来威胁、破解东北战略困局都有着不可替代的重要作用。&lt;br /&gt;&lt;br /&gt;     朝鲜在历史上是长期是我国的属国，曾经长期使用中国汉字，同属于中华文化圈，与中国一起长期共同繁荣。直到甲午之战后，清政府与日本签订城下之盟，朝鲜在 获得短暂的名义上的“独立”后，迅速亡国，二战后又分裂为两个国家，这是朝鲜半岛脱离中国后的悲惨遭遇，是个可怕的教训。&lt;br /&gt;&lt;br /&gt;    从现实 方面来看，双方有共同的安全关切和战略合作的基础和条件。其一，朝、韩都是小国，两方地域狭小，难有大的发展和作为，在当今和可预见的未来，国际上丛林法 则和实力论盛行，小国只能在大国的夹缝中生存，难以保持事实上的独立。朝、韩本身就是大国划分势力范围的受害者，它们二国想必体会更深。其二，朝、韩最为 关切的半岛统一问题遥遥无期，未来不排除长期、甚至永久分裂下去的可能。实际上，中国在朝鲜半岛的影响力是其他大国无法双拟的，这在朝核六方会谈上已由事 实作了明证。韩国在还未统一时已经漏出了森森狼牙，篡改高句丽历史，觊觎我东北领土，与朝鲜一起，在黄海划界上与我争执。在此情况下，我国不能不对我东北 的安全有所关切，不能不对朝鲜半岛的统一有所顾忌，我们再也不能竭尽全力去再造一个白眼狼式的“越南第二”了！未来的朝鲜半岛双方谁也难以吃掉谁，没有中 国的支持或默许，难有朝韩的统一，这是美国也难做到的事情。其三，朝、韩的生命线几乎全掐在中国手里，美国拿不去，俄罗斯也替不了，即使朝、韩两国想依附 区外大国，怕是也难以做到。因此，中国与朝韩两国的关系，想坏也坏不到哪里去。如果说朝韩两国追求统一可以理解的话，那他觊觎我领土则纯属痴心妄想，属于 神经病！是根本无法实现的。从前段时间，发生的韩国运动员“长白山事件”来看，确实很蠢，事实与他们所要达到的目的背道而驰。两个小国的政治家幻想着一旦 实现统一，半岛上立即出现一个中等规模的国家，届时，就会出现“一家有女四家求”的局面，他们可以在中美俄日四国间寻求平衡，获取最大利益。但是即便如 此，他们还是无能力和实力侵占中国的领土，也还不足以实现真正的独立。中国与朝鲜和韩国只有战略合作才是共赢的唯一出路。&lt;br /&gt;&lt;br /&gt;                   （二）蒙古：展翅欲飞的“鸡翅膀”&lt;br /&gt;&lt;br /&gt;     蒙古是我国北方天然的外围屏障。她的丧失使中国北方的地缘环境极度恶化。蒙古面积156万多平方公里，连接起中国的三北地区。她的丧失使我三北地区不能连 成直线，只能是条弧线，北边少了一大块。由蒙古西出可以威胁新疆，东进可以威胁东北，南下可威胁京津，使我北方的战略纵深大大缩短，使我国的东北地区成为 “四战之地”，战略态势对我极为不利。 蒙古的独立，是苏美肢解二战后的弱国中国的罪恶行径，是极不光彩的。从此，中国的北方多了一个蒙古国，蒙古同胞遭 到了分割。蒙古地处中俄领土的包围之中，蒙古虽然把美国、日本等西方国家视为第三邻国，事实上是没有第三邻国的。蒙古的离去不过才60年。之后尽管走过不 少曲折之路，中蒙最终走向接近是迟早的事。蒙古要发展经济，改善民生，不得不依靠中国。蒙古要走向外界，不得不依赖中国。中国的天津港是距离蒙古最近的海 港。蒙古与中国实现战略合作，搭上中国经济发展的快车，对蒙古只有好处，没有害处。以蒙古之弱，千万不要去玩弄什么“平衡”，施展什么手段，不要有危害中 国的非分之想。蒙古是最有希望成为上合的成员国的。无论是对中俄，还是对西方，接纳蒙古转正，都还能接受。蒙古将眼光转向中俄，是一件好事。与中国接近， 是一件幸事。如果中蒙实现战略合作，那蒙古就成为雄鸡背上的鸡翅！中国北方的缺陷将有效弥补，蒙古也可借力中国提高其国力和影响力，对双方来说都非常有 利。&lt;br /&gt;&lt;br /&gt;                       （三）缅甸、越南：两条凶猛的“鸡爪”&lt;br /&gt;&lt;br /&gt;    缅甸虽然领土达67 万多平方公里，但仍然是个三流国家，也必然会依附大国，且面临着中国、印度和区外大国美国的争夺。美国屡次欲对缅甸动手，幸亏中国出手相助才安然无恙。背 靠大树好乘凉。缅甸无论是从依附的角度，还是从国家发展的战略高度来考虑，中国都是不二的最佳选择。因为印度的份量不够，区外大国远水解不了近渴。面临着 强国争夺的形势，缅甸势必难以保持骑墙之态，与中国接近会使缅甸获益良多。其实，如果缅甸把国家的战略定位于中国西南最佳的战略出海通道，那是会相当不错 的。收复领土联盟在多个帖子里对此进行了详尽的论述。缅甸是中国借之迈向印度洋的不得多得的战略支点。对中国的战略意义非同一般。同样，只要缅甸的国家战 略定位准确了，其国内政治、经济、安全等各个方面就都有了切实保障。中缅合作是双方互利共赢的大好事，既利于眼前，更利于后世，是关系到子孙万代的大事。 对于这一点，缅甸政府是会看清的。&lt;br /&gt;&lt;br /&gt;    越南国土南北狭长，纵深狭小，整体上呈“了”字型分布，从地缘上来看，本质上就是南海的一条边，对于我控制南海具有天然的地利！&lt;br /&gt;&lt;br /&gt;     对于对越自卫反击战，网上多有不同的声音，主要的分歧集中在有无必要打、打得值不值上。实际上，收复领土联盟是非常佩服邓总的战略眼光的。对越自卫反击战 的战略目的，显然不仅仅在于教训越南，将其赶出其侵占的中国南方领土，最根本的着眼点在于打掉其妄图借力苏联，侵吞别国，称霸中南半岛的战略野心！中国在 西南已经有了一个劲敌印度，是绝不会容忍再在南方出现一个强敌越南的，何况这个敌人还有当时的一个超级大国苏联的背后支持！因此，收复领土联盟将对越自卫 反击战，看作是战略意义不亚于抗美援朝的一次战略行动！邓总，绝对英明。其实，越南作为一个小国，长久以来却有着不小的野心，越南“多年来有个成立中南半 岛联邦的美梦”。就连胡志明也有过这种想法。越南把中国视为实现中南半岛联邦的最大障碍，一旦借力中国实现国家统一，随即变本加厉地反中国，在国内消灭汉 字，把大批越南华裔驱逐出境。越南把侵略目标指向了国力弱小的老挝和柬埔寨，目的就是增加其战略纵深，后来其侵占中国的西沙、南沙都是同种目的。老挝、柬 埔寨都是联合国承认的正当国家，何况老挝还曾为中国属国，中国人有什么理由坐视越南侵吞别国而无动于衷？何况中南半岛联邦一旦变为现实，越南并不会停止侵 略步伐。届时，越南还会成为苏联南下进军印度洋的环球战略的一步棋。越南的惨败，是个惨痛的历史教训，这对于妄想借助美国实现称霸野心的日本同样是个借 鉴！小国依靠大国去挑战另一个大国，下场会很惨的。这就是一个国家忘记了本分，狂妄自大，目空一切的恶果，怨不得别人。&lt;br /&gt;&lt;br /&gt;    现在，越 南还占领着中国的大部分南沙岛礁，中国是绝不会善罢甘休的。越南如果不乖乖地交出来，那是会付出惨重的代价的。越南比朝鲜半岛更易于被截为南北两半，更经 不起军事打击。越南幻想以侵占我国的南沙群岛的方式来增加其防御纵深，是完全错误的，具有极大的风险，其风险之大如鱼游于釜中、燕巢于幕上，危如累卵。希 望越南当局能够吸取历史教训，改弦更张，多做有利于两国和平、合作的好事。实际上，如果越南与中国实现战略合作，中国借助于越南领土，实现对南海的有效控 制和对南海资源的有效利用，对于越南也绝没有坏处。如果中国未来将越南的金兰湾等地作为我国航母的补给地，那会极有利于中国海空军的战略部署。中国对越南 没有领土野心，越南犯不上对中国疑虑。中越实现合作还有不少阻力，越南现在已全部实行了拉丁文，并将中国的南海称作东海，对于那场战争也还会难以释怀，历 史的恩怨还会牵惹两国人民的情绪。但越南现在还幻想着永久侵占南沙，既不可能，也不现实，且要承担着极大的风险。该解决的始终会解决，只不过是个时机和时 间长短问题。可怜的越南，是既抗不住打，又经不起折腾了。越南与中国合作是个极佳的战略定位，也是唯一的战略定位。作为中国未来的一条“鸡腿”或者说“鸡 爪”，其战略地位和国家实力会逐步上升的。这是收复领土联盟为越南指出的一个光明的前途。做于不做，要看它的了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                   （四）台湾、海南：雄鸡的蛋蛋，宝贝疙瘩&lt;br /&gt;&lt;br /&gt;     有网友将台湾和海南作为中国的两条腿，实际上，不是很恰当。缅甸和越南才是中国真正的两条“鸡腿”或者 “鸡爪”，台湾和海南太短了点。台湾和海南是中国 海防要地，是不可多得的金蛋蛋和宝贝疙瘩，更是海空军的战略支点，是未来航母的天然良港。关于台湾和海南，不是本帖的论述重点，故从略。&lt;br /&gt;&lt;br /&gt;     蒙、朝、韩、缅、越五国是我国的重要邻国，战略地位极为重要。上述诸国的得失对我国有着生死攸关的巨大利害关系。在历史上，蒙、朝、韩、缅、越或者是我国 的领土，或者是我国的属国，我国曾经为了朝鲜、缅甸、越南和蒙古而付出过惨重的代价。如果沿历史的路径往上走走就成了一家人。但也正因如此，历史的、现实 的、文化的、民族的各种利益纷争频仍。现在，我国与上述诸国又存在着领土或领海的纠葛，涉及到具体的利益，彼此又都难以割舍，难以退让，难解难分。我国与 上述诸国实实在在是一对“冤家”，彼此又爱又恨，可在大的原则上，在战略利益上，又是辅车相依，唇亡齿寒，谁也离不开谁。中国与上述国家建立“大金鸡”格 局，是一个上上之选。她会将各种历史的、现实的恩怨化解于无形，会使各方共同的利益和关切最大化地得以实现，是实现各国有利的战略定位，共谋发展，共创和 谐，共建良好国际关系的一个良策、奇策、妙策。希望有关各国的当政者认真思考、决断。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    收复领土联盟&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-7661783616807308756?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/7661783616807308756/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=7661783616807308756&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7661783616807308756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7661783616807308756'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/blog-post_30.html' title='中国应借地谋势，共建“大金鸡”格局[轉]'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-7069793087136954661</id><published>2007-05-30T09:34:00.000+08:00</published><updated>2007-05-30T09:36:47.255+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>for..in and for each..in</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 has a new iteration statement: for each..in (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#for_each..in" target="_blank"&gt;for each..in&lt;/a&gt;). for each..in works much like for..in (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#for..in" target="_blank"&gt;for..in&lt;/a&gt;) execpt it loops through the values of an object rather than its keys. Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:Object = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2867&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;isModerator&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;true&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;for&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; each (&lt;b&gt;var&lt;/b&gt; value:* &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;){&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(value);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* Output:&lt;br /&gt;true&lt;br /&gt;2867&lt;br /&gt;senocular&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Respectively, a for..in would look like:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:Object = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2867&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;isModerator&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;true&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;for&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; (&lt;b&gt;var&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;){&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; + &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;": "&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; + &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;]); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object[key] is value&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* Output:&lt;br /&gt;isModerator: true&lt;br /&gt;id: 2867&lt;br /&gt;name: senocular&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Note that the key is not available in for each..in.&lt;br /&gt;&lt;br /&gt;ActionScript 3 also maintains array element order (using numeric array indices) when using for..in and for each..in rather than basing order off of when the value was created as was the case in ActionScript 1 and 2. Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:Array = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;] = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;0&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;] = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;] = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;for&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; (&lt;b&gt;var&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;in&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;){&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"array["&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; + &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; + &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"] = "&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;+ &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;key&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;]);&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Output AS 1 &amp; AS 2:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt inset ; padding: 5pt; background: rgb(239, 244, 250) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[2] = 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[0] = 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[1] = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Output AS 3:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt inset ; padding: 5pt; background: rgb(239, 244, 250) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[0] = 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[1] = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;array[2] = 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;This provices a more intuitive order when iterating through arrays with for..in and for each..in.&lt;br /&gt;&lt;br /&gt;Note: To use the for each..in statement with an instance of a user-defined class, you must declare the class with the dynamic attribute.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-7069793087136954661?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/7069793087136954661/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=7069793087136954661&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7069793087136954661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7069793087136954661'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/forin-and-for-eachin.html' title='for..in and for each..in'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8985183393365515333</id><published>2007-05-28T17:56:00.000+08:00</published><updated>2007-05-28T17:57:24.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>ByteArray Class</title><content type='html'>&lt;h1&gt;&lt;strong&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h1&gt;  &lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 adds to the Flash player support for working with binary data through use of the ByteArray class (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/ByteArray.html" target="_blank"&gt;flash.utils.ByteArray&lt;/a&gt;). The ByteArray class is a special kind of an array (though is not a subclass of Array (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/Array.html" target="_blank"&gt;Top level Array&lt;/a&gt;)) which holds data (bytes) that relates to data as found in computer memory.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8985183393365515333?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8985183393365515333/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8985183393365515333&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8985183393365515333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8985183393365515333'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/bytearray-class.html' title='ByteArray Class'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-4488725715367551164</id><published>2007-05-26T21:12:00.000+08:00</published><updated>2007-05-26T21:13:58.397+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Default Values for Function Parameters</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionSript 3 now allows you to specify default values for your function's parameters. In doing so, that parameter then becomes optional and the default value assigned to the respective argument in the function call if a value is explicitly not provided.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;function&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; method(required:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, optional:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"default"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(required +&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;" "&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;+optional);&lt;br /&gt;}&lt;br /&gt;method(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"Hello"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "Hello default" &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;You can only place parameters with default values after all required parameters. In other words you can't have &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Incorrect:&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; method(required:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"default"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, optional:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; { ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;since there would be no way for optional to be set without required having to be set as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-4488725715367551164?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/4488725715367551164/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=4488725715367551164&amp;isPopup=true' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4488725715367551164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4488725715367551164'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/default-values-for-function-parameters.html' title='Default Values for Function Parameters'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8257361284592356334</id><published>2007-05-25T13:44:00.001+08:00</published><updated>2007-05-25T13:44:25.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Undetermined Number of Arguments With ...(rest)</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Since ActionSript 3 checks argument count when functions are called you are not able to pass any number of arguments to any function like you could in ActionScript 1 or ActionScript 2. Instead, to allow for this, you need to use a new special kind of parameter called ...(rest) (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/statements.html#..._%28rest%29_parameter" target="_blank"&gt;Keyword: ...(rest)&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The ...(rest) parameter is a special parameter placed at the end of a parameter list in a function that specifies that there can be any number of additional arguments of any type passed into that function when its called. The form of the parameter is 3 periods followed by a keyword. When the function is called, the additional arguments are assigned to that keyword in the form of an array.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;function&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; usingRest(required:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, ... &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;optionalArgs&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(required); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(optionalArgs); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// [2, 3, 4]&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;}&lt;br /&gt;usingRest(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8257361284592356334?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8257361284592356334/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8257361284592356334&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8257361284592356334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8257361284592356334'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/undetermined-number-of-arguments-with.html' title='Undetermined Number of Arguments With ...(rest)'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6842153711746453237</id><published>2007-05-24T21:07:00.000+08:00</published><updated>2007-05-24T21:09:43.352+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='凭栏阁'/><title type='text'>IT人不可不听的10个职场故事</title><content type='html'>&lt;table class="mode_table" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td class="mode_table_main" valign="top"&gt; &lt;span class="right"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="mode_table_main" id="orgPublish" style="display: none;" valign="top"&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="mode_table_mains" id="voteDiv" style="display: none;" valign="top"&gt; &lt;table align="center" border="0" cellpadding="1" cellspacing="1" width="100%"&gt;[%repeat_0  match="/data/option"%] &lt;tbody&gt; &lt;tr title="[%=@title%] -- [%=@count%]票 [[%=@percent%]％]"&gt; &lt;td class="blog_vote_option"&gt;&lt;input id="option[%=@id%]" value="[%=@id%]" name="voteOption" type="[%=@optionType%]"&gt;&lt;label for="option[%=@id%]"&gt;&lt;span style="overflow-x: hidden; white-space: nowrap;"&gt;[%=@title%]&lt;/span&gt;&lt;/label&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt; &lt;td&gt;&lt;img onerror="regImg(this,'/qzone/client/icon_v[%=@icon%].gif')" src="about:blank" border="0" height="9" width="[%=@percent%]" /&gt;[%=@count%]票  [[%=@percent%]％]&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;[%_repeat_0%] &lt;tr&gt; &lt;td class="text" colspan="2" align="center"&gt;&lt;br /&gt;&lt;span class="center"&gt;&lt;img class="submit" id="imgButton5" onclick="vote()" alt="提交" src="http://imgcache.qq.com/qzone/images/b.gif" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="mode_table_main" valign="top"&gt; &lt;div id="blogContent" style="font-size: 12px;"&gt;&lt;span style="padding: 1px; color: rgb(255, 255, 255); height: 10px;"&gt;&lt;span style="line-height: 1.3em;font-size:100%;" &gt;其实不仅是IT人，场中人皆在其列。&lt;/span&gt;&lt;wbr&gt;&lt;/span&gt;&lt;wbr&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;&lt;br /&gt;　　 &lt;span style="line-height: 1.3em;color:#0033ff;" &gt;(1) &lt;br /&gt;　　有一次，一个老强盗带着徒弟去抢劫银行，被警方追捕。两人狂逃，差点儿连裤子都跑掉了。好不容易甩掉了警察，两人上气不接下气，瘫倒在地上。 &lt;br /&gt;　　良久，惊魂稍定，徒弟说:“师父啊师父，要是这个世界上没有警察，该有多么美好啊!”师父骂道:“放屁!要是没有警察，我们还有饭吃吗?!”徒弟大惑不解。师父“语重心长”地说:“你只知其一不知其二啊!你想想，如果没有了警察，是不是大家都敢去偷、去抢了?正因为有了这些警察，把那些能人挡住了，我们才有生存空间啊!和他们相比，我们算什么东西?有什么本事啊?我们不就是仅仅凭着一颗贼胆，敢干他们不敢干的事，才混得一口饭吃吗?有了警察，才有我们啊!没有警察，哪里有我们的好日子过啊!” &lt;br /&gt;　　你看成功人士多么风光，但是，你只看到一面，没有看到另外一面，你“只看到贼吃肉，没有看到贼挨打”，没有看到他们为成功所流的汗水、泪水，甚至鲜血!即使，你看到了“贼挨打”，你也只愿意做“只吃肉不挨打的贼”。天下哪里有这样便宜的好事!上面那个老强盗的经验，我们是可以好好借用一下的。只要有一点点勇气、自信，就足够用来突破生理和心理的障碍。&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;　&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;   　 &lt;span style="line-height: 1.3em;color:#9900ff;" &gt;(2) &lt;br /&gt;　　两个食人族到某公司上班，老板说:“如果你们在公司吃人，立马开除!”三个月下来大家相安无事，突然一天老板把这两个人叫到办公室大骂一顿:“TMD，叫你们不要吃人你们还吃，明天你们不用来上班了!”  两食人族收拾东西离开，出门时一个忍不住骂另一个:“告诉过你多少遍，不要吃干活儿的人，三个月来我们每天吃一个部门经理，什么事都没有，昨天你吃了一个清洁工，今天就被他们发现了!” &lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;        &lt;span style="line-height: 1.3em;color:#ff6633;" &gt;&lt;span style="line-height: 1.3em;color:#663333;" &gt;(3) &lt;br /&gt;　　小狗汤姆到处找工作，忙碌了好多天，却毫无所获。他垂头丧气地向妈妈诉苦说:“我真是个一无是处的废物，没有一家公司肯要我。” &lt;br /&gt;　　妈妈奇怪地问:“那么，蜜蜂、蜘蛛、百灵鸟和猫呢?” &lt;br /&gt;　　汤姆说:“蜜蜂当了空姐，蜘蛛在搞网络，百灵鸟是音乐学院毕业的，所以当了歌星，猫是警官学校毕业的，所以当了保安。和他们不一样，我没有接受高等教育的经历和文凭。” &lt;br /&gt;　　妈妈继续问道:“还有马、绵羊、母牛和母鸡呢?” &lt;br /&gt;　　汤姆说:“马能拉车，绵羊的毛是纺织服装的原材料，母牛可以产奶，母鸡会下蛋。和他们不一样，我是什么能力也没有。” &lt;br /&gt;　　妈妈想了想，说:“你的确不是一匹拉着战车飞奔的马，也不是一只会下蛋的鸡，可你不是废物，你是一只忠诚的狗。虽然你没有受过高等教育，本领也不大，可是，一颗诚挚的心就足以弥补你所有的缺陷。记住我的话，儿子，无论经历多少磨难，都要珍惜你那颗金子般的心，让它发出光来。” &lt;br /&gt;　　汤姆听了妈妈的话，使劲地点点头。 &lt;br /&gt;　　在历尽艰辛之后，汤姆不仅找到了工作，而且当上了行政部经理。鹦鹉不服气，去找老板理论，说:“汤姆既不是名牌大学的毕业生，也不懂外语，凭什么给他那么高的职位呢?” &lt;br /&gt;　　老板冷静地回答说:“很简单，因为他是一只忠诚的狗。”&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;       &lt;span style="line-height: 1.3em;color:#336600;" &gt;(4) &lt;br /&gt;　　去过庙的人都知道，一进庙门，首先是弥勒佛，笑脸迎客，而在他的背面，则是黑口黑脸的韦陀。但相传在很久以前，他们并不在同一个庙里，而是分别掌管不同的庙。 &lt;br /&gt;　　弥勒佛热情快乐，所以来的人非常多，但他什么都不在乎，丢三拉四，没有好好的管理账务，所以依然入不敷出。而韦陀虽然管账是一把好手，但成天阴着个脸，太过严肃，搞得人越来越少，最后香火断绝。 &lt;br /&gt;　　佛祖在查香火的时候发现了这个问题，就将他们俩放在同一个庙里，由弥勒佛负责公关，笑迎八方客，于是香火大旺。而韦陀铁面无私，锱珠必较，则让他负责财务，严格把关。在两人的分工合作中，庙里一派欣欣向荣景象。 &lt;br /&gt;　　其实在用人大师的眼里，没有废人，正如武功高手，不需名贵宝剑，摘花飞叶即可伤人，关键看如何运用。 &lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;       &lt;span style="line-height: 1.3em;color:#660066;" &gt;(5) &lt;br /&gt;　　曾经有个小国到中国来，进贡了三个一模一样的金人，把皇帝高兴坏了。可是这小国不厚道，同时出一道题目:这三个金人哪个最有价值? &lt;br /&gt;　　皇帝想了许多的办法，请来珠宝匠检查，称重量，看做工，都是一模一样的。怎么办?使者还等着回去汇报呢。泱泱大国，不会连这个小事都不懂吧? &lt;br /&gt;　　最后，有一位退位的老大臣说他有办法。 &lt;br /&gt;　　皇帝将使者请到大殿，老臣胸有成足地拿着三根稻草，插入第一个金人的耳朵里，这稻草从另一边耳朵出来了。第二个金人的稻草从嘴巴里直接掉出来，而第三个金人，稻草进去后掉进了肚子，什么响动也没有。老臣说:第三个金人最有价值!使者默默无语，答案正确。 &lt;br /&gt;　　这个故事告诉我们，最有价值的人，不一定是最能说的人。老天给我们两只耳朵一个嘴巴，本来就是让我们多听少说的。善于倾听，才是成熟的人最基本的素质。 &lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;       &lt;span style="line-height: 1.3em;color:#9900ff;" &gt;(6) &lt;br /&gt;　　父子两住山上，每天都要赶牛车下山卖柴。老父较有经验，坐镇驾车，山路崎岖，弯道特多，儿子眼神较好，总是在要转弯时提醒道:“爹，转弯啦!” &lt;br /&gt;　　有一次父亲因病没有下山，儿子一人驾车。到了弯道，牛怎么也不肯转弯，儿子用尽各种方法，下车又推又拉，用青草诱之，牛一动不动。 &lt;br /&gt;　　到底是怎么回事?儿子百思不得其解。最后只有一个办法了，他左右看看无人，贴近牛的耳朵大声叫道:“爹，转弯啦!”&lt;br /&gt;　　牛应声而动。 &lt;br /&gt;　　牛用条件反射的方式活着，而人则以习惯生活。一个成功的人晓得如何培养好的习惯来代替坏的习惯，当好的习惯积累多了，自然会有一个好的人生。&lt;/span&gt;&lt;wbr&gt;&lt;span style="line-height: 1.3em;color:#006633;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;      &lt;span style="line-height: 1.3em;color:#0033cc;" &gt;(7) &lt;br /&gt;　　一只乌鸦坐在树上，整天无所事事。一只小兔子看见乌鸦，就问:“我能象你一样整天坐在那里，什么事也不干吗?”乌鸦答道:“当然啦，为什么不呢?”于是，兔子便坐在树下，开始休息。突然，一只狐狸出现了。狐狸跳向兔子……并把它给吃了。 &lt;br /&gt;　　这个故事的寓意是……要想坐在那里什么也不干，你必须坐(做)得非常非常高。&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;　　&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;      &lt;span style="line-height: 1.3em;color:#cc33ff;" &gt;(8) &lt;br /&gt;　　一只小鸟正在飞往南方过冬的途中。天气太冷了，小鸟冻僵了，从天上掉下来，跌在一大片农田里。它躺在田里的时候，一只母牛走了过来，而且拉了一泡屎在它身上。冻僵的小鸟躺在牛屎堆里，发掘牛粪真是太温暖了。牛粪让它慢慢缓过劲儿来了!它躺在那儿，又暖和又开心，不久就开始高兴地唱起歌来了。一只路过的猫听到了小鸟的歌声，走过来查个究竟。顺着声音，猫发现了躲在牛粪中的小鸟，非常敏捷地将它刨了出来，并将它给吃了! &lt;br /&gt;　　这个故事的寓意是……&lt;br /&gt;　　1) 不是每个在你身上拉屎的都是你的敌人。&lt;br /&gt;　　2) 不是每个把你从屎堆中拉出来的都是你的朋友。 &lt;br /&gt;　　3) 而且，当你陷入深深的屎堆当中(身陷困境)的时候，闭上你的鸟嘴!&lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;       &lt;span style="line-height: 1.3em;color:#cc3300;" &gt;(9) &lt;br /&gt;　　有七个人曾经住在一起，每天分一大桶粥。要命的是，粥每天都是不够的。 &lt;br /&gt;　　一开始，他们抓阄决定谁来分粥，每天轮一个。于是乎每周下来，他们只有一天是饱的，就是自己分粥的那一天。后来他们开始推选出一个道德高尚的人出来分粥。强权就会产生腐败，大家开始挖空心思去讨好他，贿赂他，搞得整个小团体乌烟障气，高尚的人也腐败了。然后大家开始组成三人的分粥委员会及四人的评选委员会，但他们常常互相攻击，扯皮下来，粥吃到嘴里全是凉的。最后想出来一个方**:**流分粥，  但分粥的人要等其它人都挑完后拿剩下的最后一碗。为了不让自己吃到最少的，每人都尽量分得平均，就算不平，也只能认了。大家快快乐乐，和和气气，日子越过越好。 &lt;br /&gt;　　同样是七个人，不同的分配制度，就会有不同的风气。所以一个单位如果有不好的工作习气，一定是机制问题，一定是没有完全公平公正公开，没有严格的奖勤罚懒。如何制订这样一个制度，是每个领导需要考虑的问题。 &lt;br /&gt;&lt;/span&gt;&lt;wbr&gt;　　&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;       &lt;span style="line-height: 1.3em;color:#6633cc;" &gt;(10) &lt;br /&gt;　　战国时期魏惠王因为齐威王违背了盟约，所以想要发兵攻打齐国。身为国相的惠施为了劝导魏王息兵，请来了国都的一位贤士戴晋人。戴晋人见了魏王问道:“关于蜗牛，君王知道吗?”魏王说:“知道。”戴普人说:“蜗牛长着两只触角。左面的角上有一个国家，称为触氏;右面的角上有一个国家，称为蛮氏。为了争夺领地，两国交兵开战，伏尸数万，胜者追了十又五天，才收兵回营。”魏王不以为然地笑说:“这不都是虚假之言吗?”戴晋人说:“不是虚假之言，不信的话，我来为你论证一下:以君王看来，四方上下有穷尽吗?”魏王说:“没有穷尽。”戴晋人又问:“人的心巡游过无穷无尽的宇宙之后，返回到人世，可不可以说人世渺小到了似有似无?”魏王说:“对。”戴晋人紧跟着又问:“人世既然渺小到了可有可无的地步，而魏国只是人世间的一个很小的地方，国都又是魏国之中很小的一块地方，君王又是国都中很小的一个形体，那么，相对于无穷无尽的宇宙而言，跟蜗牛右角上蛮氏国的国王又有什么分别呢?”魏王说:“没有什么分别。” &lt;br /&gt;　　戴晋人离去了。魏王好似被引入了空旷无际的太空，看不到人世，更看不到魏国，体悟到人世和国土的渺小，感受到了征战和扩疆的无聊，认识到交兵争胜，所得不过蜗牛一角之地，实在没有多大意义。于是称赞戴晋人为“大人”，认为他有如此眼光，远远超过了圣人。 &lt;br /&gt;　　&lt;/span&gt;&lt;wbr&gt;&lt;/span&gt;&lt;wbr&gt;&lt;br /&gt;&lt;span style="line-height: 1.3em;font-size:85%;" &gt;      &lt;/span&gt;&lt;wbr&gt;&lt;span style="padding: 1px; color: rgb(255, 255, 255); height: 10px;"&gt;故事告诉我们，职场的一切得失都是渺小的，没有人会在临死的时候，后悔自己没有多花点时间在办公室工作。&lt;/span&gt;&lt;wbr&gt; &lt;br /&gt;&lt;span style="padding: 1px; color: rgb(255, 255, 255); height: 10px;"&gt;       幸福，才是人的一生中最重要的事情。&lt;/span&gt;&lt;wbr&gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-6842153711746453237?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/6842153711746453237/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=6842153711746453237&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6842153711746453237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6842153711746453237'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/it10.html' title='IT人不可不听的10个职场故事'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-2048125753508900058</id><published>2007-05-24T11:29:00.001+08:00</published><updated>2007-05-24T11:29:57.266+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>getBounds() vs getRect()</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Like ActionScript 1 and 2, ActionScript 3 has a getBounds() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/DisplayObject.html#getBounds%28%29" target="_blank"&gt;flash.display.DisplayObject.getBounds()&lt;/a&gt;) method for determining the bounds of a movie clip (display object) in the coordinate space of any timeline. In ActionScript 3, however, getBounds has changed to return a Rectangle (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/geom/Rectangle.html" target="_blank"&gt;flash.geom.Rectangle&lt;/a&gt;) instance instead of a generic object with the properties xMin, xMax, yMin, and yMax.&lt;br /&gt;&lt;br /&gt;ActionScript 3 also adds an additional method similar to getBounds called getRect() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/DisplayObject.html#getRect%28%29" target="_blank"&gt;flash.display.DisplayObject.getRect()&lt;/a&gt;). The getRect() method works just like getBounds except it doesn't take into consideration strokes on shapes.&lt;br /&gt;&lt;br /&gt;The following example shows the differences between the rectangle shape returned by getBounds and that returned by getRect.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; sprite:Sprite = &lt;b&gt;new&lt;/b&gt; Sprite();&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;beginFill&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(0x999999);&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;lineStyle&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, 0x333);&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;drawCircle&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;100&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;100&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;50&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;endFill&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;addChild(sprite);&lt;br /&gt;&lt;br /&gt;addChild(createRectShape(sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;getRect&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;), 0xFF00FF));&lt;br /&gt;addChild(createRectShape(sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;getBounds&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;), 0xFF0000));&lt;br /&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; createRectShape(rect:Rectangle, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;color&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:uint):Shape {&lt;br /&gt;    &lt;b&gt;var&lt;/b&gt; rectShape:Shape = &lt;b&gt;new&lt;/b&gt; Shape();&lt;br /&gt;    rectShape.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;lineStyle&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;0&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;color&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    rectShape.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;graphics&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;drawRect&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(rect.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;left&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, rect.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;top&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, rect.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;width&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, rect.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;height&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; rectShape;&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Running the above script draws a circle with a stroke of 10 px with two rectangles around it, one which fits to the vector shape of the circle (getRect) and the other which fits to the bounds of the whole object including the stroke (getBounds).&lt;br /&gt;&lt;br /&gt;The rectangle returned by getRect relates to width and height values associated with the display object (which doesn't account for strokes) while getBounds returns a rectangle associated with the visual boundaries of the display object. Note that filters are not accounted for in either method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-2048125753508900058?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/2048125753508900058/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=2048125753508900058&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2048125753508900058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2048125753508900058'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/getbounds-vs-getrect.html' title='getBounds() vs getRect()'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-721312242292471722</id><published>2007-05-23T16:43:00.000+08:00</published><updated>2007-05-23T16:44:26.857+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Flash 9: BitmapData and Bitmaps from the Library</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Flash 8 let you load bitmap information from the library using a linkage ID and the BitmapData.loadBitmap() method. This is no longer the case with Flash 9 and ActionScript 3. Now, as with timelines and movie clips in the library, Bitmaps are associated with classes. If you do not specify a specific class to be related to your bitmap in the library, you can name one which will be created automatically when publishing the SWF.&lt;br /&gt;&lt;br /&gt;Classes associatated with bitmaps in the library are subclasses of BitmapData (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/BitmapData.html" target="_blank"&gt;flash.display.BitmapData&lt;/a&gt;). These are then instantiated as instances in ActionScript using the new keyword. As BitmapData instances, before being able to be seen on the screen, they would need to be associated with a Bitmap (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/Bitmap.html" target="_blank"&gt;flash.display.Bitmap&lt;/a&gt;) instance which is a display object capabale of being added to a display list (BitmapData instances cannot be added to display lists).&lt;br /&gt;&lt;br /&gt;As an example, lets say you imported a bitmap of &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Rome&lt;/st1:City&gt;&lt;/st1:place&gt; in your library. In the linkage dialog for that bitmap, give it a class name of RomeImage - note that you don't have to create this class yourself; it will be created automatically. Then, to display it on the screen in ActionScript, use:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// create instance of RomeImage bitmap data&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; romeImageData:RomeImage = &lt;b&gt;new&lt;/b&gt; RomeImage();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// create a bitmap instance that references the RomeImage instance&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; romeImageBitmap:Bitmap = &lt;b&gt;new&lt;/b&gt; Bitmap(romeImageData);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// add the new bitmap to the display list&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;addChild(romeImageBitmap);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-721312242292471722?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/721312242292471722/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=721312242292471722&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/721312242292471722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/721312242292471722'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/flash-9-bitmapdata-and-bitmaps-from.html' title='Flash 9: BitmapData and Bitmaps from the Library'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8915338578920477133</id><published>2007-05-22T09:53:00.000+08:00</published><updated>2007-05-22T09:54:02.066+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Changes in typeof</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;The typeof operator lets you determine the basic type of any value. Note that this does not give you actual class association information, but only provides a simplistic indication of the type of variable its used with. For more information regarding specific class relation, use instanceof, getQualifiedClassName, or describeType.&lt;br /&gt;&lt;br /&gt;In ActionScript 1 and 2, typeof returned the following values: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;boolean &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;movieclip &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;null &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;number &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;string &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;undefined&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;In ActionScript 3, typeof returns: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;boolean &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;function &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;number &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;object &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;string &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;xml &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;undefined&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Notice that MovieClip instances are, in AS3, no longer recognized by typeof. They are now seen as objects. Additionally, there is no null value (also seen as an object) and xml is seen as being of type xml.&lt;br /&gt;&lt;br /&gt;The new number types in AS3, int and uint, when used with typeof both return number.&lt;br /&gt;&lt;br /&gt;Also, primitive values (boolean, number, and string) created with their constructors and the new keyword are now recognized as those primitive types by typeof and not as objects as they were in AS1 and AS2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// AS1 &amp; AS2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; my_mc); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// movieclip&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;null&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// null&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;true&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// boolean&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// number&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;""&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// string&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// AS3&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// xml&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; my_mc); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;null&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// object&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;true&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// boolean&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// number&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;""&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// string&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// boolean&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// number&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;()); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// string&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// number&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;typeof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; uint(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// number &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8915338578920477133?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8915338578920477133/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8915338578920477133&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8915338578920477133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8915338578920477133'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/changes-in-typeof.html' title='Changes in typeof'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8056040043212760902</id><published>2007-05-21T16:16:00.000+08:00</published><updated>2007-05-21T16:18:51.710+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='凭栏阁'/><title type='text'>美经济学家评价毛泽东：不仅仅是开国元勋[轉]</title><content type='html'>&lt;input name="title" value="美经济学家评价毛泽东：不仅仅是开国元勋" type="hidden"&gt;&lt;input value="http://bbs14.xilu.com/cgi-bin/bbs/view?forum=emas&amp;message=339748" name="url" type="hidden"&gt;          &lt;input value="0" name="type" type="hidden"&gt; &lt;table bordercolorlight="#57542b" align="center" bgcolor="#bbe4ff" border="0" bordercolor="#ffffff" cellpadding="0" cellspacing="3" width="98%"&gt; &lt;tbody&gt;&lt;tr&gt;      &lt;td height="26"&gt;作者:&lt;a href="http://bbs.xilu.com/cgi-bin/tools/passmail?nick=akaaaa" target="_blank"&gt;akaaaa&lt;/a&gt; 发表时间: 2007/05/21 15:48 点击:56次&lt;/td&gt;     &lt;td align="right"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;/tr&gt; &lt;form name="formfavorite" method="post" target="_blank" action="http://www.xilu.com/msg/favor.php"&gt;&lt;/form&gt;     &lt;/tbody&gt;&lt;/table&gt;  &lt;span class="zhengwen"&gt;     毛泽东是今天中国经济长足发展的制度设计人&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　美国新经济学家梅森说,当时中国军队经商,警察违法,海关走私,基层干部大面积结合贪污,严重威胁中国存亡的时候,中国平民阶层在50--80年三个 十年的长足发展中已占社会的主流,累积了能够打倒这批新贵的社会综合力量.如果中国没有三反五反到文化革命等一系列趋向于平民化的过程,中国九十年代的反 贪,很可能是印尼和巴西的样子。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　中国今天的反贪,比和她一个省下边的地区差不多大的对岸还要好,同样,巴西和印尼比中国大陆经济早起飞二十年,他们的军队,警察和地 方新贵勾结起来,盘根错节,普通百姓和中央的一批改革派几乎无能为力实行任何有意义的改革,两国不仅经济结构缺胳膊少腿,而且再行发展的经济动力也不够。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　这说明中国在社会基本力量的分布上,已经是个平民阶层主导社会发展的格局.这是个现代化国家的政体.虽然她与西方现代化国家整体的表面构造不一样.印 尼巴西和印度是传统落后国家的政体,虽然她们在表面构造上和西方现代化国家政体相同.中国土地改革到文化革命的洪炉化掉了社会中的传统筋骨,使其在构造成 分上达到了现代国家的比例。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　文化革命是快了些,委屈了一批人,尤其是不到社会3%的教育科技人员和地方乡绅,这是它的副作用,但文化革命不仅在当时,即使在今天 和明天也堵死了中国走向传统社会力量分配格局的路,它偏向了中国普通老百姓.在今天看来,如果从这个意义上来理解文化革命,毛泽东是今天中国经济长足发展 的制度设计人,而绝对不仅仅是开国元勋。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8056040043212760902?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8056040043212760902/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8056040043212760902&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8056040043212760902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8056040043212760902'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/blog-post.html' title='美经济学家评价毛泽东：不仅仅是开国元勋[轉]'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-2799010993843877057</id><published>2007-05-21T12:20:00.000+08:00</published><updated>2007-05-21T12:24:36.519+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Weak References</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;If you want a reference to exist for an object that will not be counted towards the reference count used by the Garbage collector, then you can use a weak reference. Weak references are ignored by the reference counter and can exist even if the object is deleted.&lt;br /&gt;&lt;br /&gt;You can't use weak references anywhere, however. There are only two places you can use weak references in ActionScript 3. One place is with Dictionary objects. The Dictionary constructor allows one optional parameter that specifies whether or not keys within the instance are weak references or not. False is the default value which means strong references. If you pass true, the Dictionary instance will use weak references&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; dict:Dictionary = &lt;b&gt;new&lt;/b&gt; Dictionary(&lt;b&gt;true&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// use weak references as keys &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;If you do this for Dictionary instances, the keys you use to store values will not be counted towards that object's reference count.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; obj:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;dict[obj] = &lt;b&gt;true&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;delete&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; obj; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// obj can be garbage collected since the dict reference isnt counted &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;The EventDispatcher's addEventListener is the other place you can specify weak references. addEventListener has a parameter that lets you specify the listener reference as being weak (since listeners internally require a reference to the object they are listening to). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;addEventListener(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;CLICK&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, clickHandler, &lt;b&gt;false&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;0&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;true&lt;/b&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// use weak references &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;For addEventListener, the default is also false, using strong references, though it's good habit to use weak listeners to help with garbage collection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-2799010993843877057?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/2799010993843877057/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=2799010993843877057&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2799010993843877057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2799010993843877057'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/weak-references.html' title='Weak References'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-3993797142116422373</id><published>2007-05-20T22:54:00.000+08:00</published><updated>2007-05-20T22:56:24.557+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Garbage Collection: Reference Counting &amp; Mark and Sweep</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Garbage collection (GC) is the automatic process in Flash that removes variables from memory when they are no longer needed. There are two processes that handle garbage collection in Flash, reference counting, and mark and sweep.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reference counting&lt;/b&gt; is a process that keeps track of all the variables referencing an object in memory. When a new reference is created to point to an object, its reference count is updated and incremented by one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; a:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// new Object in memory given reference count of 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; b:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = a; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Object now has reference count of 2 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;When ever there are no longer any references pointing to an object in memory, that object is purged from memory and permanently forgotten by the player.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;delete&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; a; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Object has reference count of 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;delete&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; b; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Object has reference count of 0, removed from memory &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;i&gt;Note: remember, the delete operator only removes variable association, it does not delete objects in memory, the GC is responsible for that. Also delete will only work on non class member variables.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;There are certain times when reference counting does not work. For example, if you have two objects that reference themselves but reference nothing else, they remain to have a reference count greater than 0 but they are in no way accessible to you, the programmer, so are in all other means as good as gone.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; a:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(a) count 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; b:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Object&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(b) count 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;a.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;b&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = b; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(b) count 2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;b.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;a&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = a; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(a) count 2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;delete&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; a; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(a) count 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;delete&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; b; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// reference(b) count 1 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Here both a and b are removed from the current scope so are no longer accessible. b is accessible from a and a is accessible from b, but since you can never get to a or b there's no way to get to b or a. These objects are as good as deleted from the programmer, however, they will remain in memory because they still contain a reference count greater than 0. This is where mark and sweep comes into play.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mark and sweep&lt;/b&gt; is a process that scans all references and object from a base location (such as the root or stage scope) and marks each one found. All of those not found are inaccessible and are therefore deleted. Given the example with a and b, since a and b are no longer accessible from any object path derived from root, they are not marked and eventually get garbage collected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt inset ; padding: 5pt; background: rgb(239, 244, 250) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[root] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;span style=""&gt;     &lt;/span&gt;[objectRef (marked)] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;span style=""&gt;          &lt;/span&gt;[objectRef (marked)] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;span style=""&gt;          &lt;/span&gt;[objectRef (marked)] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;span style=""&gt;     &lt;/span&gt;[objectRef (marked)] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;span style=""&gt;     &lt;/span&gt;[objectRef (marked)] &lt;- scan...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;[delete all objects not marked]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Mark and sweep is a more expensive process compared to reference counting so it takes longer and is performed less often. In fact, provided little or no activity in your movie, many frames could elapse before mark and sweep kicks in. What this means is that you could potentially have variables in memory for a long time after you assumed them to be gone. For objects that have actions associated with them, such as events coming off of enterFrame events, this could be something to be concerned about since those events could still operate after the object should technically be deleted. You should always make sure you "cleanup" your events for situations where they might remain in memory longer than you want.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-3993797142116422373?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/3993797142116422373/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=3993797142116422373&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3993797142116422373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3993797142116422373'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/garbage-collection-reference-counting.html' title='Garbage Collection: Reference Counting &amp; Mark and Sweep'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6145045685498091629</id><published>2007-05-18T09:36:00.000+08:00</published><updated>2007-05-18T09:37:31.534+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Number() Conversion No Longer Interprets Octals</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;In ActionScript 1 and 2, when you convert String values into their number equivalents using Number(), if the number was preceded by a "0", the value would be interpreted as an octal value (base 8) much in the same way a preceding "0x" means hex (base 16). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// ActionScript 1 and 2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"010"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 8 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;This could often cause problems for 'normal' values that, more often than not, you'd rather stay decimal (base 10). In ActionScript 3, this is no longer the case. String values with preceding "0"s are no longer treated as octals (though "0x" still means hex).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// ActionScript 3&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"010"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 10 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;If you want to interpret a string as an octal, you would then use parseInt specifying a radix of 8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;parseInt&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"010"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;8&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 8 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt; &lt;!--[endif]--&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-6145045685498091629?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/6145045685498091629/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=6145045685498091629&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6145045685498091629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6145045685498091629'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/number-conversion-no-longer-interprets.html' title='Number() Conversion No Longer Interprets Octals'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-393908088701765157</id><published>2007-05-17T09:26:00.000+08:00</published><updated>2007-05-17T09:27:43.277+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Get Sound Spectrum Information</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Using ActionScript 3 you can now obtain sound spectrum information from audio played through Flash. This lets you create visualizations like those seen in popular in media player applications. The class that provides this information is the SoundMixer class (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/media/SoundMixer.html" target="_blank"&gt;flash.media.SoundMixer&lt;/a&gt;). It's computeSpectrum method (static) places sound spectrum information in a ByteArray instance which can then be used to generate a visualization.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// play sound...&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; spectrumInfo:ByteArray = &lt;b&gt;new&lt;/b&gt; ByteArray();&lt;br /&gt;SoundMixer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;computeSpectrum&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(spectrumInfo);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// spectrumInfo is now a byte array with sound spectrum info &lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-393908088701765157?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/393908088701765157/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=393908088701765157&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/393908088701765157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/393908088701765157'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/get-sound-spectrum-information.html' title='Get Sound Spectrum Information'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6778348987419186529</id><published>2007-05-16T09:20:00.000+08:00</published><updated>2007-05-16T09:21:24.968+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Event Propagation Support</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 now supports event propagation - the transference of a single event applying to multiple objects to each of those objects instead of one - in Display objects. In ActionScript 1 and 2, "Button" events (such as onPress, onRelease, etc.) handled by movie clips were not propagated to that movie clip's children. This means that though visually you were clicking on a child of a movie clip handling an onPress event, that onPress would never make it to the child because the parent movie clip handling the event would intercept it and prevent the propagation of the onPress event to that child.&lt;br /&gt;&lt;br /&gt;Example; movie clip parent_mc contains child_mc:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// AS1 and AS2&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;parent_mc.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;onPress&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;function&lt;/b&gt;(){&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"parent pressed"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;parent_mc.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;child_mc&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;onPress&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;function&lt;/b&gt;(){&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"child pressed"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* click child output:&lt;br /&gt;parent pressed&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// AS3&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;parent_mc.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;CLICK&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, parentClick);&lt;br /&gt;parent_mc.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;child_mc&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;CLICK&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, childClick);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; parentClick(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"parent pressed"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; childClick(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"child pressed"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* click child output:&lt;br /&gt;child pressed&lt;br /&gt;parent pressed&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;In ActionScript 1 and 2, the child is never able to receive the event. In ActionScript 3, both movie clips are able to receieve it as the event is propagated to each movie clip to which it applies.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-6778348987419186529?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/6778348987419186529/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=6778348987419186529&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6778348987419186529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/6778348987419186529'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/event-propagation-support.html' title='Event Propagation Support'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-5014077658629200939</id><published>2007-05-15T13:45:00.000+08:00</published><updated>2007-05-15T13:47:32.869+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>XML: @ Operator for Attributes</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;E4X (XML used in ActionScript 3) has new operators to access values in XML. One operator is the @ operator which accesses attributes. It can be used in place of the attribute() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/XML.html#attribute%28%29" target="_blank"&gt;Top level XML.attribute()&lt;/a&gt;) method for obtaining attribute values. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXML:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;user&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; id=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"2867"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; /&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myXML.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;attribute&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"name"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// senocular&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myXML.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;attribute&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"id"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 2867&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myXML.@&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// senocular&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(myXML.@id); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 2867 &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;You can also use an asterisk (*) with the @ operator to get a list of all attributes associated with an XML node in the form of an XMLList object. This is equivalent to the attributes() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/XML.html#attribute%28%29" target="_blank"&gt;Top level XML.attributes()&lt;/a&gt;) method. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXML:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;user&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;name&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; id=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"2867"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; /&gt;;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; atts:XMLList;&lt;br /&gt;&lt;br /&gt;atts = myXML.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;attributes&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(atts.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;toXMLString&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;());&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* Output:&lt;br /&gt;senocular&lt;br /&gt;2867&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;atts = myXML.@*;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(atts.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;toXMLString&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;());&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;/* Output:&lt;br /&gt;senocular&lt;br /&gt;2867&lt;br /&gt;*/&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-5014077658629200939?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/5014077658629200939/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=5014077658629200939&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5014077658629200939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5014077658629200939'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/xml-operator-for-attributes.html' title='XML: @ Operator for Attributes'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1882082153920173711</id><published>2007-05-14T09:31:00.000+08:00</published><updated>2007-05-14T09:33:03.222+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Render Event</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript has long since relied on the enterFrame (onEnterFrame) event for time-based actions, especially animation and actions relating to frame playback. In comparison, Director's Lingo language has, not only an enterFrame event, but two other frame events, prepareFrame and exitFrame. Though ActionScript 3 has not aquired prepareFrame or exitFrame, it has gained a new frame event, render, or Event.RENDER (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/Event.html#RENDER" target="_blank"&gt;flash.events.Event.RENDER&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The render event in AS3 is a frame event that occurs after enterFrame (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/Event.html#ENTER_FRAME" target="_blank"&gt;flash.events.Event.ENTER_FRAME&lt;/a&gt;) allowing one more chance to do what you need to do before the screen updates its display.&lt;br /&gt;&lt;br /&gt;Unlike enterFrame, however, the render event will not be called unless the display object using it is attached to a stage (or in any display list attached to the stage). Also, render is not automatically called every frame, even if attached to the stage. In order for render to be called for the current frame, you must make a call to stage.invalidate() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/Stage.html#invalidate%28%29" target="_blank"&gt;flash.display.Stage.invalidate()&lt;/a&gt;);&lt;br /&gt;&lt;br /&gt;Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; sprite:Sprite = &lt;b&gt;new&lt;/b&gt; Sprite();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;stage&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addChild&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(sprite);&lt;br /&gt;&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;ENTER_FRAME&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, enterFrame);&lt;br /&gt;sprite.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;RENDER&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, render);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;stage&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;CLICK&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, click);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; enterFrame(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"enter frame"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; render(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"render"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; click(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"click"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;stage&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;invalidate&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt inset ; padding: 5pt; background: rgb(239, 244, 250) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;Output:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;click&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;render&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;enter frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1882082153920173711?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1882082153920173711/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1882082153920173711&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1882082153920173711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1882082153920173711'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/render-event.html' title='Render Event'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-786885439143996288</id><published>2007-05-12T15:03:00.000+08:00</published><updated>2007-05-12T15:04:38.906+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>RegExp: Email Validation</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Here's an example of how one might validate email using ActionScript 3's Regular Expression class (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/RegExp.html" target="_blank"&gt;Top level RegExp&lt;/a&gt;):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;function&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; isValidEmail(email:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;b&gt;var&lt;/b&gt; emailExpression:RegExp = /^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; emailExpression.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;test&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(email);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;//...&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(isValidEmail(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular@example.com"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(isValidEmail(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"@example.com"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(isValidEmail(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"senocular@example"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(isValidEmail(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"seno&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(0, 0, 153);" lang="EN-US"&gt;\\&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;cular@example.com"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false &lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-786885439143996288?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/786885439143996288/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=786885439143996288&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/786885439143996288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/786885439143996288'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/regexp-email-validation.html' title='RegExp: Email Validation'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1025282158472055746</id><published>2007-05-11T11:10:00.001+08:00</published><updated>2007-05-11T11:10:37.378+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Flash 9: Timelines as Classes</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;In Flash 9, you are able to associate all timelines with classes, including the root timeline. Movie clip timelines are associated with classes the same way as ActionScript 2 using the linkage dialog. The root timeline can be given a class association through the property inspector or through the publish settings (in ActionScript settings).&lt;br /&gt;&lt;br /&gt;If you do not associate a timeline with a class, one is automatically created for that timeline by Flash. When this happens, variables become class variables, all named functions (declared using function functionName(){}) become methods of that class, and all scripts within the frames associated with methods that are automatically called when that frame is reached (minus the variable and method definitions). Because of this, you can only declare variables and named functions of any specific name for a function once. Variables you can redefine, but not redeclare. Functions (methods) are locked. Note: You cannot mix classes associated with timelines and timeline scripts.&lt;br /&gt;&lt;br /&gt;The following timeline script in Flash 9&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; num:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; showNum():&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(num);&lt;br /&gt;}&lt;br /&gt;showNum();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;essentially becomes the following AS3 class that gets associated with that timeline:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;    &lt;b&gt;class&lt;/b&gt; TimelineClass &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;MovieClip&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; num:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; showNum():&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;num&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; frame1():&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;            showNum();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1025282158472055746?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1025282158472055746/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1025282158472055746&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1025282158472055746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1025282158472055746'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/flash-9-timelines-as-classes.html' title='Flash 9: Timelines as Classes'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-5702798125322885921</id><published>2007-05-10T09:40:00.000+08:00</published><updated>2007-05-10T09:41:11.630+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>is Operator (vs instanceof)</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;The is operator (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/operators.html#is" target="_blank"&gt;is operator&lt;/a&gt;) is a new keyword that lets you check to see if an instance is of a certain object type. This works for ActionScript 3 class instances checked against class types as well as interfaces. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; mySprite:Sprite = &lt;b&gt;new&lt;/b&gt; Sprite();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite is Sprite);           &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite is DisplayObject);    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite is IEventDispatcher); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;The is operator is a replacement for instanceof (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/operators.html#instanceof" target="_blank"&gt;instanceof operator&lt;/a&gt;) from ActionScript 1 and 2. The is operator, however, is specific to AS3 classes and is used to check the inheritance specific to those classes. This will not work on dynamic classes created with AS1-style constructor functions. In that situation, you would use instanceof since instanceof checks the prototype chain of an instance as opposed to class inheritance (which is does). Because an AS3 class's class inheritance is mirrored in its prototype chain, this means that instanceof will also work for AS3 classes, though is is prefered then (and less typing!).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; mySprite:Sprite = &lt;b&gt;new&lt;/b&gt; Sprite();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;instanceof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite);           &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;instanceof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; DisplayObject);    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mySprite &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;instanceof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; IEventDispatcher); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false - not in prototype chain &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; AS1StyleClass:&lt;b&gt;Function&lt;/b&gt; = &lt;b&gt;function&lt;/b&gt;(){}&lt;br /&gt;AS1StyleClass.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;MovieClip&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; as1Instance:* = &lt;b&gt;new&lt;/b&gt; AS1StyleClass();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(as1Instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;instanceof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; AS1StyleClass);    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(as1Instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;instanceof&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;MovieClip&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(as1Instance is AS1StyleClass);    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// true&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(as1Instance is &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;MovieClip&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// false - cant see prototype chain &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-5702798125322885921?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/5702798125322885921/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=5702798125322885921&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5702798125322885921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5702798125322885921'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/is-operator-vs-instanceof.html' title='is Operator (vs instanceof)'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-3613741028105806724</id><published>2007-05-09T11:45:00.000+08:00</published><updated>2007-05-09T11:53:58.800+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Loading Text and XML with URLLoader</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;In previous versions of ActionScript, there were a couple of classes who had the capability of loading external text, namely LoadVars and XML. The loading responsibilities of these classes has moved to one single class in ActionScript 3, URLLoader (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/net/URLLoader.html" target="_blank"&gt;flash.net.URLLoader&lt;/a&gt;). This class is a lot like LoadVars. The big difference is that it is used for XML since the responsibility of loading XML from an external source has been removed from the XML class. Instead, you would load the text with URLLoader and then give that text to an XML object for parsing.&lt;br /&gt;&lt;br /&gt;Like LoadVars, URLLoader has a load() method that is used to load text from an external source. This accepts 1 argument, a URLRequest instance (NOT a URL string). You can then use events from URLLoader to determine when the loading is complete. When complete, the text loaded is available in the data property of URLLoader.&lt;br /&gt;&lt;br /&gt;Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; loader:URLLoader;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// ...&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;loader = &lt;b&gt;new&lt;/b&gt; URLLoader();&lt;br /&gt;loader.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;COMPLETE&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, xmlLoaded);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; request:URLRequest = &lt;b&gt;new&lt;/b&gt; URLRequest(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"file.xml"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;loader.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;load&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(request);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;//...&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; xmlLoaded(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;b&gt;var&lt;/b&gt; myXML:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(loader.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;data&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;//...&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-3613741028105806724?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/3613741028105806724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=3613741028105806724&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3613741028105806724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3613741028105806724'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/loading-text-and-xml-with-urlloader.html' title='Loading Text and XML with URLLoader'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1311721888495719400</id><published>2007-05-08T11:39:00.000+08:00</published><updated>2007-05-08T11:41:01.969+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>XML vs. XMLDocument</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;XML has changed for ActionScript 3. The new way of dealing with XML revolves around E4X - ECMAScript's XML specification. This provides a different, more efficient interface for dealing with XML nodes and attributes. These are all associated with the new XML (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/XML.html" target="_blank"&gt;top level XML&lt;/a&gt;) class. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXML:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(objectToConvert);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXML:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;node&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;The old class, as it was used in ActionScript 1 and 2, is still around. However, it has been renamed to XMLDocument (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/xml/XMLDocument.html" target="_blank"&gt;flash.xml.XMLDocument&lt;/a&gt;). If you want to work with XML the way you did with AS1 and AS2, you would use XMLDocument instead of XML.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXML:XMLDocument = &lt;b&gt;new&lt;/b&gt; XMLDocument(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"&lt;node&gt;"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1311721888495719400?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1311721888495719400/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1311721888495719400&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1311721888495719400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1311721888495719400'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/xml-vs-xmldocument.html' title='XML vs. XMLDocument'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-870126499665208491</id><published>2007-05-07T11:31:00.000+08:00</published><updated>2007-05-07T11:34:00.063+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>URLRequest for URL Strings</title><content type='html'>Methods relying on URL strings in ActionScript 3 now use URLRequest (flash.net.URLRequest) instances instead of direct string values for URLs. URLRequest instances contain the following properties: &lt;br /&gt;• contentType:String &lt;br /&gt;• data:Object &lt;br /&gt;• method:String &lt;br /&gt;• requestHeaders:Array &lt;br /&gt;• url:String&lt;br /&gt;which relates to the URL itself (specified in the url property).&lt;br /&gt;&lt;br /&gt;For example, when using navigateToURL() (flash.net.navigateToURL) (getURL() replacement), instead of passing a string of the URL to navigate to, you use a URLRequest instance.&lt;br /&gt;ActionScript Code:&lt;br /&gt;var request:URLRequest = new URLRequest("http://www.adobe.com/");&lt;br /&gt;navigateToURL(request);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-870126499665208491?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/870126499665208491/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=870126499665208491&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/870126499665208491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/870126499665208491'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/urlrequest-for-url-strings.html' title='URLRequest for URL Strings'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-2524222333388521780</id><published>2007-05-06T11:41:00.000+08:00</published><updated>2007-05-06T11:42:23.142+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Calling Event Handlers without Events</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;When you define event handlers in ActionScript 3, the functions need to accept 1 parameter of the type Event. When these methods are called by the events, those event objects are then passed into the handler.&lt;br /&gt;&lt;br /&gt;If you have an event handler that you want to use as a normal function call, you can call that function with a new Event object passed into it like so:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;myHandler(&lt;b&gt;new&lt;/b&gt; Event(someEventType));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;However, that can be a hassle and a little confusing (plus you are creating an event that probably has nothing to do with the function). If you just want to be able to call the event handler without having to worry about that event but still have it work for calls coming from events, you can define the handler with your event parameter having a default value of null. This way you can call the function without an event but still have it work when the event is passed from an actual event call.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; myHandler(event:Event = &lt;b&gt;null&lt;/b&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {...}&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// call normally without event&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;myHandler();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Note: this will not work if your event handler relies on information from the event object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-2524222333388521780?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/2524222333388521780/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=2524222333388521780&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2524222333388521780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2524222333388521780'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/calling-event-handlers-without-events.html' title='Calling Event Handlers without Events'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-4734603350410683201</id><published>2007-05-05T11:17:00.000+08:00</published><updated>2007-05-06T11:43:21.343+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Multiple Arguments in trace()</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style=";font-family:Verdana;font-size:8;color:black;"   lang="EN-US" &gt;As with previous versions of ActionScript, there exists a trace function for outputing messages into the Output panel in Flash. In ActionScript 1 and 2, trace accepted one argument that was outputed to the Output panel in Flash. In ActionScript 3, trace now accepts any number of arguments and outputs them each.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style=";font-family:Verdana;font-size:8;color:black;"   lang="EN-US" &gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;color:blue;"   lang="EN-US" &gt;trace&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;color:black;"   lang="EN-US" &gt;(value1, value2, value3);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style=";font-family:Verdana;font-size:8;color:black;"   lang="EN-US" &gt;&lt;br /&gt;&lt;br /&gt;Note: You could get essentially the same effect in AS1 and AS2 using &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style=";font-family:Verdana;font-size:8;color:black;"   lang="EN-US" &gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;color:blue;"   lang="EN-US" &gt;trace&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:8;color:black;"   lang="EN-US" &gt;([value1, value2, value3]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style=";font-family:Verdana;font-size:8;color:black;"   lang="EN-US" &gt;&lt;br /&gt;using an array &lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style="'width:13.5pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\typhone\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" href="http://www.kirupa.com/forum/images/smilies/wink.gif"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///C:/DOCUME%7E1/typhone/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" shapes="_x0000_i1025" height="18" width="18" /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-4734603350410683201?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/4734603350410683201/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=4734603350410683201&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4734603350410683201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/4734603350410683201'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/multiple-arguments-in-trace.html' title='Multiple Arguments in trace()'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-3865884970192531690</id><published>2007-05-04T21:11:00.000+08:00</published><updated>2007-05-04T21:12:56.004+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Determining Current Frame Label</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;MovieClip (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/MovieClip.html" target="_blank"&gt;flash.display.MovieClip&lt;/a&gt;) instances in ActionScript 3 have a couple of new properties called currentLabels and currentLabel. currentLabels is an array of FrameLabel (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/display/FrameLabel.html" target="_blank"&gt;flash.display.FrameLabel&lt;/a&gt;) instances describing the frame labels within the movie clip's timeline. Each FrameLabel in the currentLabels array contains two properties: name, and frame. Name provides the name of the label and frame is the frame number on which it exists. currentLabel returns the name of the label associated with the current frame.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; label:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = my_mc.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;currentLabel&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-3865884970192531690?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/3865884970192531690/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=3865884970192531690&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3865884970192531690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3865884970192531690'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/determining-current-frame-label.html' title='Determining Current Frame Label'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8474459153126382359</id><published>2007-05-03T11:58:00.000+08:00</published><updated>2007-05-03T12:00:25.100+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>super() Placement (Now Anywhere)</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;In ActionScript 2, the call to super() in the constructor of a class inheriting from another class had to be the first statement within the constructor. If you didn't add it explicitly yourself, it was added for you.&lt;br /&gt;&lt;br /&gt;In ActionScript 3, super will still be added for you if you did not include it yourself, but now you are allowed to place it anywhere within your constructor, even after other statements; it no longer has to be the first statement in your constructor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; SubClass &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; SuperClass {&lt;br /&gt;        protected &lt;b&gt;var&lt;/b&gt; value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; SubClass(value:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;0&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;value&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = value;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;super&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;20&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8474459153126382359?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8474459153126382359/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8474459153126382359&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8474459153126382359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8474459153126382359'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/super-placement-now-anywhere.html' title='super() Placement (Now Anywhere)'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1517640026045745478</id><published>2007-05-02T11:45:00.000+08:00</published><updated>2007-05-02T11:48:00.188+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Determine Instance Class or Superclass</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 lets you easily obtain any instances class name using a new function called getQualifiedClassName (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/package.html#getQualifiedClassName%28%29" target="_blank"&gt;flash.utils.getQualifiedClassName&lt;/a&gt;). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; sprite:Sprite = &lt;b&gt;new&lt;/b&gt; Sprite();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(getQualifiedClassName(sprite)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "flash.display::Sprite" &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;You can also use the getQualifiedSuperclassName (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/package.html#getQualifiedSuperclassName%28%29" target="_blank"&gt;flash.utils.getQualifiedSuperclassName&lt;/a&gt;) function to find its superclass&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(getQualifiedSuperclassName(sprite)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "flash.display::DisplayObjectContainer" &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;If you want to go backwards, and convert a string into an actual class reference, you can use getDefinitionByName (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/package.html#getDefinitionByName%28%29" target="_blank"&gt;flash.utils.getDefinitionByName&lt;/a&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(getDefinitionByName(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"flash.display::Sprite"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;)); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// [class Sprite] &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Also see describeType() (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/package.html#describeType%28%29" target="_blank"&gt;flash.utils.describeType&lt;/a&gt;) in the following post...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1517640026045745478?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1517640026045745478/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1517640026045745478&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1517640026045745478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1517640026045745478'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/determine-instance-class-or-superclass.html' title='Determine Instance Class or Superclass'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1967430413555567715</id><published>2007-05-01T11:15:00.000+08:00</published><updated>2007-05-01T11:16:58.894+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Writing Inline XML</title><content type='html'>&lt;h1&gt;  &lt;/h1&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;In ActionScript 3, you can define XML variables using inline XML in your script. You don't even need to enclose it in Strings like you did in previous versions of ActionScript. The ActionScript 3 compiler will automatically parse the XML in the code and recognize when it stops and when normal AS code starts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; myXml:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;XML&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; =&lt;br /&gt;        &lt;body&gt;&lt;br /&gt;            &lt;!-- comment --&gt;&lt;br /&gt;            text1&lt;br /&gt;            &lt;a&gt;&lt;br /&gt;                &lt;b&gt;text2&lt;/b&gt;&lt;br /&gt;            &lt;/a&gt;&lt;br /&gt;        &lt;/body&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1967430413555567715?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1967430413555567715/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1967430413555567715&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1967430413555567715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1967430413555567715'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/05/writing-inline-xml.html' title='Writing Inline XML'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-47752495249482390</id><published>2007-04-30T10:39:00.000+08:00</published><updated>2007-04-30T10:40:48.818+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Events and Event Types</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Event objects used with EventDispatcher in ActionScript 3 are a little less generic than those used with ActionScript 2. In AS 3, each event object has its own class. The most common event classes are Event (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/Event.html" target="_blank"&gt;flash.events.Event&lt;/a&gt;) for general events and MouseEvent (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/MouseEvent.html" target="_blank"&gt;flash.events.MouseEvent&lt;/a&gt;) for events associated with the mouse. Other event classes can be found in the flash.events package, all of which inherit from Event.&lt;br /&gt;&lt;br /&gt;When using EventDispatcher.dispatchEvent(), you pass in an Event instance that is specific to the event being dispatched. The type of event dispatched is defined within the Event instance used. For example, dispatching an "enterFrame" event would mean using dispatchEvent with an Event instance instantiated with the type "enterFrame".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;dispatchEvent(&lt;b&gt;new&lt;/b&gt; Event(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"enterFrame"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;When an event handler is executed as a result of this event, that event object is passed into the function as a single argument. Properties from that event can then be extracted to learn more about the event that occured. For example, the type property from the Event class tells which event was dispatched.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;addEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"enterFrame"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, eventHandler);&lt;br /&gt;dispatchEvent(&lt;b&gt;new&lt;/b&gt; Event(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"enterFrame"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; eventHandler(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "enterFrame"&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Though event types are strings, all common Flash events are available in Flash through static constants of the Event classes. The "enterFrame" event type, for example, is accessible using Event.ENTER_FRAME. Mouse events are within the MouseEvent class. Click events, for example, are MouseEvent.CLICK. These constants are prefered over their string representations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;addEventListener(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;ENTER_FRAME&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, eventHandler);&lt;br /&gt;dispatchEvent(&lt;b&gt;new&lt;/b&gt; Event(Event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;ENTER_FRAME&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;When making your custom Events, you can use the Event object with a custom type or alternatively, extend the Event class creating a new kind of Event instance to be used with your events.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-47752495249482390?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/47752495249482390/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=47752495249482390&amp;isPopup=true' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/47752495249482390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/47752495249482390'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/events-and-event-types.html' title='Events and Event Types'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-7383470142270658088</id><published>2007-04-24T11:33:00.000+08:00</published><updated>2007-04-24T11:35:33.740+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>EventDispatcher</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 uses the EventDispatcher (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/EventDispatcher.html" target="_blank"&gt;flash.events.EventDispatcher&lt;/a&gt;) class for all event handling. This class was available in ActionScript 2, but it existed as an external class in the mx framework. Now, it is built into the player (and in being so, improves performance).&lt;br /&gt;&lt;br /&gt;Whenever you want to create an event handler to be called during a certain event, whether it be every frame (enterFrame event), or at the press of a button (mouseDown event), in AS 3, you will need to use EventDispatcher. This means there are no more onEnterFrame of onPress functions you can define that will automatically handle these events, nor are there any simple addListener methods for generalized event listening. EventDispatcher and addEventListener (and related methods) does it all.&lt;br /&gt;&lt;br /&gt;Methods &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;(type:String,      listener:Function, useCapture:Boolean = false, priority:int = 0,      useWeakReference:Boolean = false):void &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;dispatchEvent&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;(event:Event):Boolean &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;hasEventListener&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;(type:String):Boolean &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;removeEventListener&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;(type:String,      listener:Function, useCapture:Boolean = false):void &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;willTrigger&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;(type:String):Boolean&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Note that addEventListener only takes functions as listeners, not objects. Also remember that class methods are bound to their instances so when used as listeners, 'this' in the event call still references the orginal class instance no matter what object dispatched the event.&lt;br /&gt;&lt;br /&gt;Basic Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Sprite&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;events&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Event&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; MyDispatcher &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; MyDispatcher() {&lt;br /&gt;            addEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"customEvent"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, handleEvent);&lt;br /&gt;            dispatchEvent(&lt;b&gt;new&lt;/b&gt; Event(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"customEvent"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; handleEvent(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "customEvent"&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;By extending the EventDispatcher class or any class that inherits from it like Sprite (all DisplayObjects are inherently EventDispatchers), your class gains access to the EventDispatcher methods. Then, other instances (or the class instance itself) can add methods to instances of that class using addEventListener and in turn they can call those events through dispatchEvent.&lt;br /&gt;&lt;br /&gt;If there is some reason your class cannot inherit from the EventDispatcher class (for example, if its already inheriting from another class which does not inherit from EventDispatcher), then you can use the EventDispatcher constructor to intialize your class instance with the methods of EventDispatcher via aggregation (composition). Just make sure you implement the IEventDispatcher interface (flash.events.IEventDispatcher). Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Sprite&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;events&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Event&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; MyDispatcher &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; MyDispatcher() {&lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; dispatcher:CustomDispatcher = &lt;b&gt;new&lt;/b&gt; CustomDispatcher();&lt;br /&gt;            dispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"customEvent"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, handleEvent);&lt;br /&gt;            dispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;dispatchEvent&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;new&lt;/b&gt; Event(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"customEvent"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;));&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; handleEvent(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(event.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "customEvent"&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;events&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Event&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;events&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;EventDispatcher&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;events&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;IEventDispatcher&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; CustomDispatcher &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;implements&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; IEventDispatcher {&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; eventDispatcher:EventDispatcher;&lt;br /&gt;       &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; CustomDispatcher() {&lt;br /&gt;        eventDispatcher = &lt;b&gt;new&lt;/b&gt; EventDispatcher(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; addEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, listener:&lt;b&gt;Function&lt;/b&gt;, useCapture:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;false&lt;/b&gt;, priority:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;0&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, useWeakReference:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;false&lt;/b&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;        eventDispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;apply&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;null&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;arguments&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; dispatchEvent(event:Event):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; eventDispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;dispatchEvent&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;apply&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;null&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;arguments&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;           &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; hasEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; eventDispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;hasEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;apply&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;null&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;arguments&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;           &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; removeEventListener(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, listener:&lt;b&gt;Function&lt;/b&gt;, useCapture:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;false&lt;/b&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;        eventDispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;removeEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;apply&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;null&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;arguments&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;           &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; willTrigger(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;String&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Boolean&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; eventDispatcher.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;willTrigger&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;apply&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;b&gt;null&lt;/b&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;arguments&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;The CustomDispatcher helper class above doesn't inherit from EventDispatcher but uses aggregation to obtain EventDispatcher functionality through an instance of EventDispatcher initialized in the constructor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-7383470142270658088?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/7383470142270658088/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=7383470142270658088&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7383470142270658088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7383470142270658088'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/eventdispatcher.html' title='EventDispatcher'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-7533014866902576045</id><published>2007-04-19T10:04:00.000+08:00</published><updated>2007-04-19T10:07:20.357+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Approach to Depth Sorting</title><content type='html'>&lt;img src="file:///E:/DOCUME%7E1/SHOWPI%7E1.TON/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///E:/DOCUME%7E1/SHOWPI%7E1.TON/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;img src="file:///E:/DOCUME%7E1/SHOWPI%7E1.TON/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt="" /&gt;    &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Because of how the display list works with ActionScript 3, some methods of depth sorting will no longer work. One in particular is sorting objects on the screen based on their y location. In ActionScript 1 and 2, you could simply tell the clip to swapDepths at its _y location and be done with it. With AS3, this is no longer possible since no gaps can exist within the depths display list ("array").&lt;br /&gt;&lt;br /&gt;An approach to obtaining the same functionality in AS3 is possible through an sorted array. Store the objects you want to arrange in an array. Then sort that array based on the y properties of the display objects within. All you have to do after that is place them in the display list in the order sorted. Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; sortedItems:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(mc1, mc2, mc3);&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; arrange():&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    sortedItems.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;sortOn&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"y"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;NUMERIC&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;    &lt;b&gt;var&lt;/b&gt; i:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;int&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = sortedItems.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;length&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;while&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(i--){&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;if&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; (getChildAt(i) != sortedItems[i]) {&lt;br /&gt;            setChildIndex(sortedItems[i], i);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Here the sortedItems array stores the display objects being sorted (mc1 - mc3). In the arrange function, that array is sorted based on their y properties and then added to the display list at their locations within the array (if not already there).&lt;br /&gt;&lt;br /&gt;Though this is not quite as easy as swaping to the depth of the _y property, it still proves a fairly efficient means of sorting objects on the screen based on their y location.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;img src="file:///E:/DOCUME%7E1/SHOWPI%7E1.TON/LOCALS%7E1/Temp/moz-screenshot-3.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-7533014866902576045?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/7533014866902576045/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=7533014866902576045&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7533014866902576045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/7533014866902576045'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/approach-to-depth-sorting.html' title='Approach to Depth Sorting'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-8789887447744406663</id><published>2007-04-15T11:48:00.000+08:00</published><updated>2007-04-15T11:51:06.279+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Timer Class</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 introduces a new class to ActionScript called the Timer class (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/Timer.html" target="_blank"&gt;flash.utils.Timer&lt;/a&gt;). This class is kind of like a suped-up setInterval (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/utils/package.html#setInterval%28%29" target="_blank"&gt;flash.utils.setInterval()&lt;/a&gt;) that sends event messages out over a period of time measured in milliseconds. Because it uses events (&lt;a href="http://livedocs.macromedia.com/flex/2/langref/flash/events/TimerEvent.html" target="_blank"&gt;flash.events.TimerEvent&lt;/a&gt;) and not a callback like setInterval, a single Timer instance can be used to call many different functions as long as they are made listeners of that instance. Additionally, Timer gives you the ability to control how many times it repeats, unlike setInterval which repeats indefinitely until clearInterval is used to shut it down, as well as the ability to start and stop the timer on command.&lt;br /&gt;&lt;br /&gt;Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; timer:Timer = &lt;b&gt;new&lt;/b&gt; Timer(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;500&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;10&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;&lt;br /&gt;timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(TimerEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;TIMER&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, notifier);&lt;br /&gt;timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(TimerEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;TIMER&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, stopper);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;stage&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addEventListener&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(MouseEvent.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;CLICK&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, continuer);&lt;br /&gt;&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; notifier(event:TimerEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;currentCount&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; stopper(event:TimerEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;switch&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; (timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;currentCount&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;case&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;5&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;br /&gt;            timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;stop&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;break&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;case&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;repeatCount&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;:&lt;br /&gt;            timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;reset&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;break&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;b&gt;function&lt;/b&gt; continuer(event:MouseEvent):&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;    timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;start&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;timer.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;start&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;This timer instance sends a TimerEvent.TIMER event every 500 milliseconds and repeats 10 times. There are 2 event listeners responding to these events, one tracing the current count of the timer and the other which will either stop (on current count of 5) or reset the timer (on current count of total count) based on the timer's current count. A mouse click to the stage will allow you to restart the timer as a result of it being stopped in the stopper listener. What you end up getting is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="border: 1pt inset ; padding: 5pt; background: rgb(239, 244, 250) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(pause; click to continue)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;7&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;9&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;10&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(pause; click to continue)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="border: medium none ; padding: 0cm; background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-8789887447744406663?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/8789887447744406663/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=8789887447744406663&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8789887447744406663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/8789887447744406663'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/timer-class.html' title='Timer Class'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-5042299637633572156</id><published>2007-04-14T23:28:00.000+08:00</published><updated>2007-04-14T23:31:35.590+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Regular Expression (RegExp) Support</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 now supports regular expressions! The implementation is much like the one used in JavaScript. You can create new regexp patterns with the &lt;a href="http://livedocs.macromedia.com/flex/2/langref/RegExp.html" target="_blank"&gt;RegExp &lt;/a&gt;class constructor (top level) and a string or using the literal text format (defined like a string only replacing quotes with a forward slash (/). Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;var&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; reCon:RegExp = &lt;b&gt;new&lt;/b&gt; RegExp(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: rgb(0, 0, 153);" lang="EN-US"&gt;\\&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;w+"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;, &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"i"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;&lt;b&gt;var&lt;/b&gt; reLit:RegExp = /\w+/i;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;RegExp methods include: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;RegExp.exec() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;RegExp.test()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;String methods that work with regular expressions include: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;String.match() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;String.replace() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;String.search()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-5042299637633572156?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/5042299637633572156/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=5042299637633572156&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5042299637633572156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/5042299637633572156'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/regular-expression-regexp-support.html' title='Regular Expression (RegExp) Support'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-1579263897644752268</id><published>2007-04-13T09:24:00.001+08:00</published><updated>2007-04-13T09:24:53.663+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Using prototype</title><content type='html'>&lt;h1&gt;&lt;strong&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h1&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;The prototype object in ActionScript is an object that exists among classes whose values are shared among all instances of the class to which it belongs. In ActionScript 1 and 2, it was used to control class inheritance. When a subclass instance references a variable, it first checks for that variable in the instance, followed by the class's prototype, followed by the superclass's prototype and so on through the prototype (inheritance) chain until there are no more classes.&lt;br /&gt;&lt;br /&gt;In ActionScript 3, inheritance is primarily managed through &lt;i&gt;Class inheritance&lt;/i&gt; and does not depend on the prototype object. However, the prototype object still exists and still provides much of the same functionality it did in AS1/AS2.&lt;br /&gt;&lt;br /&gt;Each class and (non-method) function created in AS3 has a prototype object associated with it. For classes, prototype is read-only, meaning you cannot redefine it with a new value. However, it doesn't mean you cannot define new values within it (otherwise it would be pointless &lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style="'width:13.5pt;"&gt;  &lt;v:imagedata src="file:///E:\DOCUME~1\SHOWPI~1.TON\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" href="http://www.kirupa.com/forum/images/smilies/wink.gif"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;img src="file:///E:/DOCUME%7E1/SHOWPI%7E1.TON/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif" shapes="_x0000_i1025" height="18" width="18" /&gt;&lt;!--[endif]--&gt;). Function prototypes are not read only. This allows you to create dynamic classes using the old style of class definitions through functions and set up inheritance through redefining the prototype.&lt;br /&gt;&lt;br /&gt;Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Sprite&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;dynamic&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; MyClass &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; MyClass(){&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// prototype = new Object(); // ERROR, cannot change prototype of class&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;newValue&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK, adding (or removing) prototyped values&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;this&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;newValue&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;toString&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// function Function() {}&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addChild&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// undefined&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(addChild); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// function Function() {}&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// dynamic ("old style") class definition&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; TempClass:&lt;b&gt;Function&lt;/b&gt; = &lt;b&gt;function&lt;/b&gt;():&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;void&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; {&lt;br /&gt;                &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;" lang="EN-US"&gt;"Create TempClass"&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;);&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;            TempClass.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;prototype&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;; &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK, can set up inheritance&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;           &lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; tempObject:* = &lt;b&gt;new&lt;/b&gt; TempClass(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// "Create TempClass"&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(tempObject.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;newValue&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// 1&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Note that you should always prefix dynamic variable references with the &lt;i&gt;this&lt;/i&gt; keyword. Also note that the Object class methods are dynamic and &lt;i&gt;are&lt;/i&gt; defined in the prototype (which is why they are not overridden with the override keyword). You may also notice that the tempObject is typed as * instead of TempClass. This is because TempClass is only recognized as being a Function in AS3, not an actual class though it can still be used as one. Though a Class type exists, dynamic classes created like TempClass will always be recognized as Functions so creating instances with them always generates instances typed as a generic object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-1579263897644752268?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/1579263897644752268/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=1579263897644752268&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1579263897644752268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/1579263897644752268'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/using-prototype.html' title='Using prototype'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-3988814170451068810</id><published>2007-04-10T09:49:00.000+08:00</published><updated>2007-04-10T09:51:16.411+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>The override Keyword</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;Overriding a method of a class means redefining a method for a class which would otherwise be inherited. The new method is then used in place of the inherited one (though the inherited method can still be invoked using super).&lt;br /&gt;&lt;br /&gt;For ActionScript 3, when you override a method or property of a superclass, you need to use the override attribute with your new method. This specifies that the member you are creating is overriding that which would otherwise be inherited. If you do not use override with a method that already exists in a superclass, an error is thrown at compile time.&lt;br /&gt;&lt;br /&gt;Ex:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.*;&lt;br /&gt;    &lt;b&gt;class&lt;/b&gt; MySprite &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; children:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;b&gt;new&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Array&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;();&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;function&lt;/b&gt; MySprite() {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; override &lt;b&gt;function&lt;/b&gt; addChild(child:DisplayObject):DisplayObject {&lt;br /&gt;            children.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;push&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(child);&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;super&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;addChild&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(child);&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; child;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Since addChild exists in the Sprite superclass, the override attribute is needed to successfully define the new addChild method which also adds the child passed to a children array.&lt;br /&gt;&lt;br /&gt;Note that the method signature needs to match that of the overriden method&lt;br /&gt;&lt;br /&gt;Override works with both normal class methods as well as getter/setter methods (properties), but it will not work with any of the following: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Variables &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Constants &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Static methods &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Methods that are not inherited &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Methods that implement an interface method &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;Inherited methods that are marked as final in the      superclass&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;Also be aware that override is not needed for methods inherited directly from the Object class. These include: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;hasOwnProperty &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;isPrototypeOf &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;propertyIsEnumerable &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;setPropertyIsEnumerable &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;toString &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;valueOf&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;These methods are added dynamically and are not part of the actual class definition. The override keyword is to be used only with methods which are part of a class's original definition.&lt;br /&gt;&lt;br /&gt;However, if extending a class which uses a method above as part of &lt;i&gt;its&lt;/i&gt; defnition, the override keyword is required. For example, if you are extending Object, you do not need to use the override keyword for the toString method. But, if you extend the Sprite class, you will need to override toString since the Sprite class has its own unique toString which is part of its class definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-3988814170451068810?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/3988814170451068810/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=3988814170451068810&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3988814170451068810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/3988814170451068810'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/override-keyword.html' title='The override Keyword'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-2574109240249182251</id><published>2007-04-09T11:55:00.000+08:00</published><updated>2007-04-09T12:21:32.117+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='读书笔记'/><title type='text'>Design Pattern: Adapter 模式 - Class Adapter[轉]</title><content type='html'>Adapter模式的另一種作法是Class Adapter模式，在這個模式下，Adapter直接繼承Adaptee（要引進的新類別），以擁有當中的成員及方法，在C++中的話可以這麼作：&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img style="width: 343px; height: 217px;" alt="Adapter" title="Adapter" src="http://www.nshen.net/designpattern/DesignPattern/images/adapter-3.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;C++中可以多重繼承，但在Java中不行，所以在Java中若要採用Class Adapter，必須作點修改，一方面繼承Adaptee，一方面實作Target的介面：&lt;br /&gt; &lt;div style="text-align: center;"&gt;&lt;img style="width: 365px; height: 224px;" alt="Adapter" title="Adapter" src="http://www.nshen.net/designpattern/DesignPattern/images/adapter-4.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;代碼的實現是這樣的：&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: left;"&gt; &lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;public class Adapter extends Adaptee implements Target {&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    // ....&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;當然，這必須您原先的Target定義了共同的介面，所以Class Adapter在Java中適用的場合較少，事實上，也比較建議使用Object Adapter，這樣的Adapter模式比較有彈性，例如，您可以在Adapter上加上個setter，以隨時可以抽換Adaptee。&lt;br /&gt;&lt;br /&gt;在Java中，Class Adapter的一個應用場合是達到多重繼承的效果，您一定在很多時候聽別人說，介面（interface）可以達到多重繼承的效果，這是怎麼回事？&lt;br /&gt;&lt;br /&gt; 其實要討論這個問題，首先您對於C++中多重繼承要先有認識，新手看了書說介面可以達到多重繼承，切莫人云亦云，尤其是沒有學過C++的新手們，如果您對 於C++多重繼承想要有所認識，請先看看 &lt;a href="http://caterpillar.onlyfun.net/Gossip/CppGossip/MultiInheritance1.html"&gt;多 重繼承（一）&lt;/a&gt;與 &lt;a href="http://caterpillar.onlyfun.net/Gossip/CppGossip/MultiInheritance2.html"&gt;多 重繼承（二）&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt; Java不能多重繼承，但為何說Java中可以使用介面（interface）來達到多重繼承的效果，首先效果之一，就如 &lt;a href="http://caterpillar.onlyfun.net/Gossip/CppGossip/MultiInheritance2.html"&gt;多 重繼承（二）&lt;/a&gt; 中描述的「 多重繼承時通常其中一個基底類別作為private實作體，而其它的用以表現完全的抽象介面。」，在Java中這個效果可以使用介面來達到，介面此時所扮 演的即 &lt;a href="http://caterpillar.onlyfun.net/Gossip/CppGossip/MultiInheritance2.html"&gt;多 重繼承（二）&lt;/a&gt; 中的抽象類別，一個完全的抽象介面，這個效果的達成方式，如 &lt;a href="http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/InterfaceType.htm"&gt;介 面（interface）型態&lt;/a&gt; 中所介紹的，您可以直接對應這兩個主題中的程式實作來瞭解，瞭解Java中如何使用介面（interface）來達到C++中所謂多重繼承的「一種」效 果。&lt;br /&gt;&lt;br /&gt; 來看看另一個情況。&lt;br /&gt;&lt;br /&gt; 如果有SomeClass類別與OtherClass類別，您想要SomeAndOther類別可以同時擁有SomeClass類別與 OtherClass類別中已定義好的操作，並可以進行多型操作，在C++中可以用多重繼承來達到，但在Java中顯然的無法使用多重繼承，怎麼辦？您可 以在設計上先繞個彎，先使用兩個介面分別定義好SomeClass與OtherClass兩個類別的公開方法，例如：&lt;br /&gt; &lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;public interface ISome {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    public void doSome();&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;public interface IOther {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    public void doOther();&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/div&gt; &lt;br /&gt; 接著讓SomeClass與OtherClass分別實作兩個介面：&lt;br /&gt; &lt;div style="margin-left: 40px; font-family: Courier New,Courier,monospace;"&gt;&lt;span style="font-weight: bold;"&gt;public class SomeClass implements ISome {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;    public void doSome() {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;        ....&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;    }&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;  &lt;br /&gt;  &lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;public class OtherClass implements IOther {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    public void doOther() {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;        ....&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    }&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/div&gt; &lt;br /&gt; SomeAndOther如何同時擁有兩個SomeClass與OtherClass類別已定義好的操作？並可以多型操作？SomeAndOther可以 繼承其中之一，並擁有其中之一，例如：&lt;br /&gt; &lt;div style="margin-left: 40px;"&gt;&lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;public class SomeAndOther extends SomeClass implements IOther {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    private IOther other = new OtherClass();&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    public void doOther() {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;        other.doOther();&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;    }&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight: bold; font-family: Courier New,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;/div&gt; &lt;br /&gt; 雖不滿意，但至少解決了目前的問題，當然這邊只是其中一例，畢竟C++是C++，Java是Java，兩者語法並不是一對一的關係，視實際需求還可以變化 一下。&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5001860689987909950-2574109240249182251?l=typhone918.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://typhone918.blogspot.com/feeds/2574109240249182251/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5001860689987909950&amp;postID=2574109240249182251&amp;isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2574109240249182251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5001860689987909950/posts/default/2574109240249182251'/><link rel='alternate' type='text/html' href='http://typhone918.blogspot.com/2007/04/design-pattern-adapter-class-adapter.html' title='Design Pattern: Adapter 模式 - Class Adapter[轉]'/><author><name>Typhone</name><uri>http://www.blogger.com/profile/16725321742387427654</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://login.blogcn.com/headimg/00/29/54/53/29545317.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5001860689987909950.post-6691664199808425345</id><published>2007-04-08T16:45:00.000+08:00</published><updated>2007-04-08T16:47:30.172+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AS3.0'/><title type='text'>Access Attributes</title><content type='html'>&lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript 3 introduces 2 new access attributes for classes and members and refines the private attribute of ActionScript 2. In ActionScript 3 you have the following attributes for controlling access: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;public &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;protected &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;private &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: black; text-align: left;"&gt;&lt;span style="font-size: 8pt; font-family: Verdana;" lang="EN-US"&gt;internal (default)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;public&lt;/b&gt;: The public attribute is the same as it was in ActionScript 2. Anything defined as public can be accessed anywhere by anything.&lt;br /&gt;&lt;br /&gt;Constructors are always public.&lt;br /&gt;&lt;br /&gt;Application classes need to be public.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;protected&lt;/b&gt;: The protected attribute is a new attribute for ActionScript. It sets variables hidden from all access except from subclasses accessing the variables (inherited) from their own instance. Attempting to access a protected variable from another class instance in any circumstance will result in an error.&lt;br /&gt;&lt;br /&gt;Classes and constructors cannot be defined as protected.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;private&lt;/b&gt;: AS2 had the private attribute but it worked more like protected as subclasses had full access to private members. Now, with AS3, private is completely private and is only accessible from within the class in which it is defined. To all other classes, even subclasses, a private member doesn't even exist. This means that subclasses can even define new members of the same name and not have a conflict since the private member of the superclass is completely hidden. Private members are accessible directly off of class instances only when done so within the class definition.&lt;br /&gt;&lt;br /&gt;Classes and constructors cannot be defined as private.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;internal&lt;/b&gt;: Internal access is similar to public access but is restricted to package definitions. Classes in the same package have access to all internal members of any other class in that package. Classes in other packages do not have access.&lt;br /&gt;&lt;br /&gt;Internal is the default for every class and class member except constructors which are always public.&lt;br /&gt;&lt;br /&gt;Access control in helper classes are a little different. Since helper classes don't technically belong in packages, internal access for them is restricted to the classes in the current file. Helper classes themselves are inherently internal in this respect (and do not need to be explicitly provided any form of access attribute). Other access attributes within helper classes behave as expected. Note: your primary class cannot extend a helper class. Only helper classes can extend other helper classes and they need to be in the same file.&lt;br /&gt;&lt;br /&gt;Something to keep in mind that access control for AS3 is also enforced not only during compile time, but also runtime. Hacks used in AS2 to get by accessing hidden methods will no longer work in AS3.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example 1&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Sprite&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Application class needs to be public (internal by default)&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; AccessControl &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// constructors are always public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;b&gt;function&lt;/b&gt; AccessControl() {&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// only classes in this file&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// can access helper classes&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; helper:Helper = &lt;b&gt;new&lt;/b&gt; Helper();&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(helper.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;pubNum&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(helper.protNum); // Error - cannot access protected&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(helper.privNum); // Error - cannot access private&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(helper.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;interNum&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Helper class is implicitly internal&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; Helper {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// public access granted anywhere&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// variables are usually protected or&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// private with get/set used for public access&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; pubNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// protected access granted only for&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// subclasses in that class&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    protected &lt;b&gt;var&lt;/b&gt; protNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// private access granted only in this class&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; privNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// internal access granted only in the same&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// package, but for helper classes, it means&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// only in the same file&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    internal &lt;b&gt;var&lt;/b&gt; interNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// constructors are always public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;b&gt;function&lt;/b&gt; Helper() {&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// SubHelper class is implicitly internal&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// can extend other helper classes&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;class&lt;/b&gt; SubHelper &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Helper {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// constructors are always public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;b&gt;function&lt;/b&gt; SubHelper() {&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(pubNum); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(protNum); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK - inherited&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(privNum); // Error - cannot access private&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(interNum); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;&lt;br /&gt;&lt;b&gt;Example 2&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package {&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; flash.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;display&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;Sprite&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;import&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; containers.*;&lt;br /&gt;   &lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// Application class needs to be public (internal by default)&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; AccessControl &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;extends&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; Sprite {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// constructors are always public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;b&gt;function&lt;/b&gt; AccessControl() {&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// can access classes in other packages&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// only if public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; bowl:Bowl = &lt;b&gt;new&lt;/b&gt; Bowl(); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// var basket:Basket = new Basket(); // Error - cannot access internal&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(bowl.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;pubNum&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// OK&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(bowl.protNum); // Error - cannot access protected&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(bowl.privNum); // Error - cannot access private&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// trace(bowl.interNum); // Error - cannot access internal&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: Verdana; color: black;" lang="EN-US"&gt;ActionScript Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="background: rgb(239, 244, 250) none repeat scroll 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;package containers {&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// public class accessible anywhere&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;class&lt;/b&gt; Bowl {&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// public access granted anywhere&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; pubNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// protected access granted only for&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// subclasses in that class&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        protected &lt;b&gt;var&lt;/b&gt; protNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;2&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// private access granted only in this class&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;private&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; &lt;b&gt;var&lt;/b&gt; privNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;3&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;       &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// internal access granted only in the same package&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        internal &lt;b&gt;var&lt;/b&gt; interNum:&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;Number&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt; = &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;4&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;;&lt;br /&gt;           &lt;br /&gt;        &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// constructors are always public&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;        &lt;b&gt;function&lt;/b&gt; Bowl() {&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: gray;" lang="EN-US"&gt;// can access inteneral classes if in same package&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;&lt;br /&gt;            &lt;b&gt;var&lt;/b&gt; basket:Basket = &lt;b&gt;new&lt;/b&gt; Basket();&lt;br /&gt;           &lt;br /&gt;            &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;" lang="EN-US"&gt;trace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;(basket.&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: navy;" lang="EN-US"&gt;pubNum&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: black;" lang="EN-US"&gt;); &lt;/span&gt;&lt;i&gt;&lt;span styl
