﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小白·菜 的储藏室-文章分类-ActionScript3</title><link>http://www.blogjava.net/poplar/category/42304.html</link><description>人生何其短，没有时间重复。</description><language>zh-cn</language><lastBuildDate>Mon, 26 Oct 2009 21:37:25 GMT</lastBuildDate><pubDate>Mon, 26 Oct 2009 21:37:25 GMT</pubDate><ttl>60</ttl><item><title>ActionScript 学习笔记(数据交互)</title><link>http://www.blogjava.net/poplar/articles/299416.html</link><dc:creator>小白·菜</dc:creator><author>小白·菜</author><pubDate>Thu, 22 Oct 2009 11:46:00 GMT</pubDate><guid>http://www.blogjava.net/poplar/articles/299416.html</guid><wfw:comment>http://www.blogjava.net/poplar/comments/299416.html</wfw:comment><comments>http://www.blogjava.net/poplar/articles/299416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/poplar/comments/commentRss/299416.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/poplar/services/trackbacks/299416.html</trackback:ping><description><![CDATA[<p><strong>数据请求：</strong></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;(1)&nbsp;初始化URLLoader&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">var&nbsp;_loader:URLLoader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;URLLoader();&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;(2)&nbsp;注册事件&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,&nbsp;loadComplete);&nbsp;&nbsp;<br />
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,&nbsp;loadIOError);&nbsp;&nbsp;<br />
_loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS,&nbsp;httpStatus);&nbsp;&nbsp;<br />
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,&nbsp;progressHandler);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;(3)&nbsp;初始化&nbsp;URLRequest&nbsp;(4)&nbsp;发送数据请求&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">_loader.load(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;URLRequest(url));&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">_loader.dataFormat&nbsp;=&nbsp;URLLoaderDataFormat.TEXT;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">_loader.dataFormat&nbsp;=&nbsp;URLLoaderDataFormat.VARIABLES;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">_loader.dataFormat&nbsp;=&nbsp;URLLoaderDataFormat.BINARY;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;(5)&nbsp;读取完成，调用回调函数&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;function&nbsp;loadComplete(event:Event)&nbsp;:&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;responseData&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;_loader.data;</span><span style="color: #008000;">//</span><span style="color: #008000;">event.target&nbsp;as&nbsp;URLLoader&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(&nbsp;URLLoaderDataFormat.BINARY&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;_loader.dataFormat&nbsp;)&nbsp;{&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;content:ByteArray&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;_loader.data&nbsp;as&nbsp;ByteArray;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Loader().loadBytes(content);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">do&nbsp;something&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;}</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;end&nbsp;function&nbsp; <br />
</span></div>
<p>
</p>
不同的数据类型下 data 的类型不同。其中 VARIABLES 是数组，&nbsp; BINARY 使用 Loader.loadBytes(_loader.data as ByteArray);
<p>&nbsp;</p>
<p><strong>发送数据</strong>
：</p>
<p>&nbsp;</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">//</span><span style="color: #008000;">发送的内容&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">var&nbsp;variables:URLVariables&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;URLVariables(</span><span style="color: #000000;">"</span><span style="color: #000000;">name=foo&amp;age=28</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">构建请求&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">var&nbsp;request:URLRequest&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;URLRequest();&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">配置请求&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">request.url&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.poplar.me/load.do</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">配置请求方法&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">request.method&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;URLRequestMethod.GET;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">设置发送数据&nbsp;&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">request.data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;variables;&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">配置发送内容类型&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">request.contentType&nbsp;=&nbsp;"text/xml";&nbsp;&nbsp;<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">request.data&nbsp;=&nbsp;&lt;person&gt;&lt;name&gt;poplar&lt;/name&gt;&lt;/person&gt;;&nbsp; <br />
</span></div>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/poplar/aggbug/299416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/poplar/" target="_blank">小白·菜</a> 2009-10-22 19:46 <a href="http://www.blogjava.net/poplar/articles/299416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ActionScript 学习笔记(入门)</title><link>http://www.blogjava.net/poplar/articles/299415.html</link><dc:creator>小白·菜</dc:creator><author>小白·菜</author><pubDate>Thu, 22 Oct 2009 11:42:00 GMT</pubDate><guid>http://www.blogjava.net/poplar/articles/299415.html</guid><wfw:comment>http://www.blogjava.net/poplar/comments/299415.html</wfw:comment><comments>http://www.blogjava.net/poplar/articles/299415.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/poplar/comments/commentRss/299415.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/poplar/services/trackbacks/299415.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 最近转学AS3，将所学知识整理一下。由于我是学Java的，所以着重点都是跟Java的对比。</p>
<p><br />
<strong>声明方式</strong></p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;var&nbsp;varName:Class&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Class();</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">普通变量&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">const</span><span style="color: rgb(0, 0, 0);">&nbsp;varName:Class&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Class();</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">常量&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">var&nbsp;varName:</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">任何类型&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">var&nbsp;varName;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">无类型变量，应该是as2遗留下来的&nbsp; <br />
</span></div>
<p>
</p>
<strong>数字</strong>
<p>
</p>
<ul>
    <li>
    int 与 Java 中的 Integer 相同</li>
    <li>
    uint 无符号，只有正数，同样是32位，最大值比int多一倍。专门用来表示包含alpha通道的颜色：0xFFFFFFFF</li>
    <li>
    Number 相当于 Java 的 Double。此处需要注意：连续的浮点数相加无法得到整数，相差太多的浮点数相加可能忽略掉小值。</li>
</ul>
<p><strong>类型默认值</strong>
</p>
<ul>
    <li>
    Number NaN 注意NaN不等于任何东西，包括自己。只能用用工具方法判断。</li>
    <li>
    * #ff0000</li>
</ul>
<p><br />
<strong>运算符</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
运算符本身是一种特殊的函数，运算对象相当于参数。</p>
<ul>
    <li>
    == 和 === 前者对比前先进行类型转换，后者不进行类型转换。<span style="color: rgb(128, 0, 128);"><strong>Array中的 indexOf就是 ===。</strong>
    </span>
    </li>
    <li>
    != 和 !== 同上</li>
    <li>
    is 判断类型，一般与 as 同用：if( var1 is Number) var1 as Number; </li>
    <li>
    in 相当于 Java 中的 contains</li>
</ul>
<p><br />
<strong>Array</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
相当于 Java 中的 ArrayList。更加神奇的是，它既是栈又是队列。</p>
<ul>
    <li>
    push 从末尾增加一个对象</li>
    <li>
    unshift 从头增加一个对象</li>
    <li>
    pop 从末尾删除一个对象并返回</li>
    <li>
    shift 从头删除一个对象并返回</li>
    <li>
    splice(起点索引,删除数量,插入元素集合) 删除和插入元素，类似Python切片，起点可以为负值。</li>
    <li>
    slice(起点索引,终点索引) 仅仅返回所选范围，其他同上。</li>
    <li>concat 相当于 Java 中的 addAll 方法<br />
    </li>
</ul>
<p><br />
<strong>超强的Function</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
两种声明方式：</p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;function&nbsp;functionName():</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">{};&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;var&nbsp;function&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;function()&nbsp;{}&nbsp; <br />
</span></div>
function 是对象，继承 Object。所以可以闭包，还可以放在数组里面。
<p>function 可以游离于
Class 之外，所以会有&#8220;全局函数&#8221;一说。</p>
<p>function
参数有默认值，有可变数组参数。可以说怎么方便怎么来，如此便有了千变万化的用法。</p>
<p>function 也是动态类，可以自行添加属性。
</p>
<p><span style="color: rgb(128, 0, 128);"><strong>AS3 中方法的参数是引用传递。</strong>
</span>
<br />
</p>
<p><strong>Object 的新用法</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
在 AS3 中 Object 除了作为基类还有一种用法—— Map。<br />
用法：</p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">value&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;obj[&#8220;key&#8221;];&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;(var&nbsp;key&nbsp;in&nbsp;obj)&nbsp;{};&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">&nbsp;each(&nbsp;var&nbsp;value&nbsp;in&nbsp;obj){} <br />
</span></div>
<p><br />
</p>
<strong>密封类/动态类</strong>
<br />
<p>
&nbsp;&nbsp;&nbsp;&nbsp;
密封类可以理解为Java中的类，无法动态添加属性等。而相对的可以用 dynamic声明动态类。动态类内涵哈希表，可以理解为 Java 中的
Map&lt;String, Object&gt;。 目前我所知道的动态类只有 MovieClip。一般用于 Flash 中给 MC
添加子元素的时候动态增加 name 属性之用。此处可以善加利用。</p>
<p><strong>AS3编辑及运行机理</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
AS3运行前需要先编译成ActionScript bytecode(ABC)文件。ABC必须在SWF文件中才能运行。Flash中 会将每一个
MovieClip 当作一个as文件，进行编译。所以如果 MC 没有绑定 as 的话编译时会自动生成一个同名 as 。Flex中的 mxml
在编译过程中会先编译成 as，进而编译成 ABC。 fla 中还可以包含资源以及外部资源链接。
</p>
<p><br />
<strong>文档类</strong>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
文档类相当于Java中的 main 方法所在的类，是程序的入口。as代码有两个地方可以写，一个是时间轴上的关键帧，另一个是 as 文件。此处的文档类就是 as 文件的形式，应该尽量使用这种形式。</p>
<img src ="http://www.blogjava.net/poplar/aggbug/299415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/poplar/" target="_blank">小白·菜</a> 2009-10-22 19:42 <a href="http://www.blogjava.net/poplar/articles/299415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>