2012-08-26

Adobe AIR 快速儲存 JPEG 或 PNG 圖檔


Flash 以往將點陣圖資料轉換為 JPEG 或 PNG 格式都是透過 as3corlib 裡的 API, 當點陣圖資料較大時, 轉換的速度明顯變慢。好消息是現在可以使用原生的轉換功能, 速度快許多。

請先參考 Flash CS6 新增 AIR SDK , 將 AIR SDK 新增 3.3 以上。

Flash Player 11.3, AIR 3.3 之後的版本, 在 BitmapData 類別新增了 encode() 方法。分別搭配 JPEGEncoderOptions, JPEGXREncoderOptions, PNGEncoderOptions 設定就可以快速將陣圖資料轉存為 JPEG 或 PNG 檔。

SQL 語法片段小記

個人使用的 SQL 語法幾乎都是最基本的, 以下記錄幾個最近使用 ActionScript 時用到的片段:

1. 如果某筆記錄已經存在, 則更新該記錄
var sql_xml:XML = <s>
 UPDATE "{TABLE_NAME}"
 SET {type}='{path}'
 WHERE sid=(
  SELECT sid FROM "{TABLE_NAME}"
  WHERE "year"={year} AND "month"={month} 
  AND "date"={date} AND "page"={page}
 );
 </s>;
2. 如果某筆記錄不存在, 則新增記錄
var sql_xml:XML = <s>
 INSERT INTO "{TABLE_NAME}" (year, month, date, page, {type})
 SELECT {year}, {month}, {date}, {page}, '{path}'
 WHERE NOT EXISTS (
  SELECT * FROM "{TABLE_NAME}" 
  WHERE "year"={year} AND "month"={month}
  AND "date"={date} AND "page"={page}
 );
 </s>;
2. 兩張表 "content" 和 "content_usage" 是以 INNER JOIN 的方式查詢。在變更 "content_usage" 而需要 "content" 的條件時
var sql_xml:XML = <s>
 UPDATE "content_usage"
 SET "open"=0, "open_date"=NULL
 WHERE EXISTS (
  SELECT * FROM "content"
  WHERE "cid"="content_usage"."cid" AND "lv" &gt;= {level}
 );
 </s>;

2012-08-23

Adobe AIR 的 SQLite 之 DATETIME 類型

一般 SQLite 的工具 (例如: Firefox plugin - SQLite Manager) 對其 DATETIME 資料類型, 裡面還是使用 TEXT 的方式處理, 以字串表示。

AIR 的 SQLite 引擎則是使用浮點數的表示方式, 貼心的地方是在讀取時會是 Date 物件。但是, 若以 AIR 去讀 DATETIME 類型 "2012-08-23 18:18:18" 這樣的文字格式, 將會無法顯示正確的日期; 若 SQLite Manager 去讀取 AIR 寫入的 DATETIME 類型 將會顯示浮點數。相互之間無法讀取。

解決的方式:

  1. 不使用 SQLite Manager, 使用 Lita 之類 AIR 寫成的工具。
  2. 若和其它程式語言合作開發時, 第一種方式就不方便了。可以將日期欄位設定為 TEXT 而不要使用 DATETIME, 如此一來以字串來處理就可以了。

2012-08-14

Flash Player 11 開始支援原生的 JSON

Flash Player 11.0 / AIR 3.0 開始支援原生的 JSON

屬預設套件 (default package) 的 JSON 類別, 方法同 JavaScript 的用法, 靜態方法使用 stringify() 和 parse()。注意: 在此並不是用 encode() 和 decode()。

2012-08-10

Sublime Text 2 設定 ActionScript 3 開發環境

Sublime 預設的 ActionScript 是支援 2.0。AS2 個人幾乎沒在寫了,以下的步驟是改成 AS3 的開發環境:

先在 Sublime Text 2 上安裝 Package Control

利用 Package Control 安裝 ActionScript 3 plugin。

  • 在 Mac 上按 command + shift + p
  • 輸入 "install", 選擇 "Package Control: install package"
  • 然後選 ActionScript 3 安裝

點選 Preferences > Browse Packages..., 開啟檔案管理員。

將 ActionScript 目錄裡的檔案移除 (或變更名稱)。

將 ActionScript 3 目錄裡的檔案拷貝到 ActionScript 目錄。

在 ActionScript 目錄, "ActionScript 3.tmLanguage" 改名為 "ActionScript.tmLanguage"。

利用 Package Control 移除 ActionScript 3 plugin。

  • 在 Mac 上按 command + shift + p
  • 輸入 "install", 選擇 "Package Control: remove package"
  • 然後選 ActionScript 3 移除

最後,依據原有的 .sublime-snippet 檔格式,去新增自己的 snippet。




FB 留言