Adobe labs 昨天發佈的 beta
Flex 3 beta 3 應該是正式版前最後的公開測試版
BlazeDS 是新釋出的開源專案, 功能只包含部份的 LCDS(LiveCycleR Data Services) ES 功能。 AMF3 spec 也一併釋出了。
LCDS ES 應該還是商業版, 又是開源版輔助商業版的策略。
2007-12-14
2007-12-11
2007-12-09
2007-12-05
2007-12-04
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 語法:
載入自己的那個 FLA frame actions:
相關檔案下載
我們可以將 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);
}
相關檔案下載
訂閱:
文章 (Atom)