2007-12-14

AIR beta3, Flex 3 beta 3, BlazeDS beta

Adobe labs 昨天發佈的 beta

Flex 3 beta 3 應該是正式版前最後的公開測試版

BlazeDS 是新釋出的開源專案, 功能只包含部份的 LCDS(LiveCycleR Data Services) ES 功能。 AMF3 spec 也一併釋出了。
LCDS ES 應該還是商業版, 又是開源版輔助商業版的策略。

2007-12-09

Free CSS templates and pictures

資料來源: Lynch Consulting Blog

free CSS templates
Free Public Domain Photo Database

AUG 2007 年底研討AS3 投影片

投影片和相關檔案在這裡
index.swf 為投影片檔, 左右鍵為上一張下一張, 向上鍵為目錄頁

2007-12-04

我終於明白

看到這一篇「黑暗界拍賣王:失森購物台
我終於明白, 為什麼我以前的書都不賣 ..... 原來沒有夜光封面 :P
黑暗界拍賣王 blog 吃飯的時候最好別看

2007-12-03

將 JPG 檔案資料加入 SWF, 並讓 SWF 載入自己

Appending binary data of a JPG file to a swf file.
我們可以將 SWF 檔後接一個圖檔資料 (別的格式當然也行),然後再利用 SWF 讀取自己, 把圖秀出來。這樣做的優點是, 可以動態組合不同內容的 SWF, 而且包成一個檔, 攜帶方便。
找了 JPG 、 PNG 圖檔格式和 SWF 檔案格式, 如下:

Jpeg 檔案格式:
JPEG Header Information
JPG File Header Format

PNG 檔案格式:
怎樣才是好的 File Format Header
Designing File Formats

SWF 檔案格式:
Alexis' SWF Reference
SWF File Format Specification (內容有點舊)
Adobe 官方資料

然而由於無法直接從 SWF 檔頭得知壓縮後的 SWF 大小, 所以放棄使用原有檔案格式的標記,改用自己增加設定。以下是合併檔案的 PHP 語法:
<?php
$fw = fopen("merged.swf", "wb");
$fn0 = "read_self.swf";
$fn1 = "hippocampus.jpg";
$fr0 = fopen($fn0, "rb");
$fr1 = fopen($fn1, "rb");
$content0 = fread($fr0, filesize($fn0));
$content1 = fread($fr1, filesize($fn1));

fwrite($fw, $content0);
fwrite($fw, '-----'); // add a specific mark
fwrite($fw, $content1);

fclose($fr0);
fclose($fr1);
fclose($fw);
?>

載入自己的那個 FLA frame actions:
var MyUrl:String = new LoaderInfo().url;
var lastSlash:int = MyUrl.lastIndexOf("/");
var selfName:String = MyUrl.slice(lastSlash+1);

var urlr:URLRequest = new URLRequest(selfName);
var urll:URLLoader = new URLLoader;
urll.dataFormat = URLLoaderDataFormat.BINARY;
urll.load(urlr);
urll.addEventListener(Event.COMPLETE, loadFinished);

function loadFinished(e:Event):void {
var ba:ByteArray = urll.data;
while (true) {
if (ba.readByte() == 45) {
if (ba.readByte() == 45) {
if (ba.readByte() == 45) {
if (ba.readByte() == 45) {
if (ba.readByte() == 45) {
break;
}
}
}
}
}
}

var ldr:Loader = new Loader;
var img_ba:ByteArray = new ByteArray;
ba.readBytes(img_ba);
this.addChild(ldr);
ldr.loadBytes(img_ba);
}

相關檔案下載

FB 留言