blog.Ring.idv.tw

ActionScript 3.0

DoABC Tag格式似乎有誤~

上圖是SWF and FLV File Format Specification (Version 9)所描述的DoABC Tag,從圖上可以知道此Tag裡頭包含了「Flags」和「ABCData」,然而真正在剖析時,似乎並不是那麼一回事~

Flash CS3(AS3)

Flex Showcase 1(已經過解壓處理)

www.deanzaextreme.com

Flex Showcase 2(已經過解壓處理)

www.vinnitsa.com

上述三張圖的「紅色」部份是DoABC Tag所包含的「Header」、「Length」和「Flags」,而「藍色」部份則是AS3 bytecode的「minor_version」和「major_version」,重點在於「綠色」部份卻沒有任何文件的說明,然而從Flex Showcase 1,2卻可以發現他所包含的資訊卻是「frame1」的字元,所以此部份的格式型態應該屬於「String」,也就是說在「Flags」之後緊接著的是「frame編號的資訊」,最後才是「ABCData」,但這部份仍屬於筆者的猜測。

2007-08-03 17:19:53 | Add Comment

ActionScript Virtual Machine 2 (AVM2) Overview 文件誤植~

ActionScript Virtual Machine 2 (AVM2) Overview這份文件中的第66頁,描述此「greaterequals」instruction,但其底下的「Format」、「Forms」是有錯誤的~

如下所示:

錯誤

[Format]:greaterthan
[Forms]:greaterthan = 175 (0xaf)

更正

[Format]:greaterequals
[Forms]:greaterequals = 176 (0xb0)

參考文件:AVM2 instructions

2007-08-02 18:21:27 | Add Comment

How to create pop-up browser windows in Flash

How to create pop-up browser windows in Flash

這篇技術教學會教導你如何在瀏覽器內利用Flash來開啟視窗~

舉個例子來說,以往我們都會利用「getURL()」來達成這樣的功能,但在AS3.0就必須改用「navigateToURL()」,或是採用執行JavaScript的方式來達成,諸如此類的應用都可以在這篇教學中找到你的答案!

2007-08-01 14:34:06 | Add Comment

Essential ActionScript 3.0 到手囉~

上個月底在Amazon一次給它買下幾本書,這本是其中的一本~終於在今天親自從郵差的手中接下它,但其實早就應該拿到手了,只因為和郵差經常碰不上~唉~

本來想說靠著網路上及官方的資料學AS3好了,事後想想還是乾脆買下這一本,畢竟Essential ActionScript 2.0也在我的書架中~

而天瓏書局目前也有貨了~ 不過如果你要買二本以上書籍的話,其實去Amazon買還是便宜一點~總而言之,接下來的日子有得忙囉~

2007-07-27 14:39:00 | Add Comment

Loading XML for AS 3.0

以往要載入一個外部的XML檔案的話,我們可以簡化成下列的作法:

Loading XML

var externalXML:XML = new XML();
externalXML.onLoad = function(success)
{
    trace(externalXML);
};
externalXML.load("myxml.xml");

從載入方式到Callback Event的處理,完全交由「XML」類別來孤軍奮戰~

然而ActionScript 3.0,它終於多了幾位幫手來協助它了~ 不僅減輕它的負擔,也能夠各司其職~

Loading XML for AS 3.0

var externalXML:XML;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("myxml.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(ProgressEvent.PROGRESS, onProgress);

function onComplete(event:Event):void
{
	externalXML = new XML(event.target.data);
	trace(externalXML.toXMLString());
}
function onProgress(event:ProgressEvent):void
{	
	trace(event.bytesLoaded);
	trace(event.bytesTotal);
}

我們可以發現載入方式完全交由「URLLoader」去處理,Callback Event也委託「IEventDispatcher」來負責,最重要的是~ 這樣的作法才符合 High Cohesion and Low Coupling,大大地增強其彈性~

而且ActionScript 3.0是以ECMAScript for XML (E4X) specification (ECMA-357 edition 2)為基礎來處理XML資料,不僅更容易使用也更簡化操作~ 順便看一下例子:

var myXML:XML =
<order>
	<item id='1'>
		<menuName>burger</menuName>
		<price>3.95</price>
	</item>
	<item id='2'>
		<menuName>fries</menuName>
		<price>1.45</price>
	</item>
</order>

trace(myXML.item[0].menuName); // Output: burger
trace(myXML.item.(@id==2).menuName); // Output: fries
trace(myXML.item.(menuName=="burger").price); // Output: 3.95

果然夠簡化與方便!!!

2007-05-09 22:18:01 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment