Flex開発の超便利ライブラリとスキン機能-3つのSWC
taiga.jp
廣畑 大雅
2010/8/5
□ as3corelibを使う際の注意点
ここで注意しなければならないことがあります。それは、Flexフレームワークには、as3corelibが提供するクラスと同名のクラスがいくつか存在する(JPEGEncoderやPNGEncoder、ArrayUtil、StringUtilなど)ということです。
それぞれ微妙に実装されている機能が異なるので、使用するときには気を付けてください。
図5 プロジェクト内に同名のクラスが存在するとき、コードヒントに候補が並ぶ |
□ as3corelibを使うためのコード例
実際の使用例を紹介します。
コード1 MD5ハッシュ文字列生成(Flex 4)<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import com.adobe.crypto.MD5;
private function init():void {
trace( MD5.hash("taiga") ); //出力 : ea0fdc44dffd8440bde0c30b43869097
}
]]>
</fx:Script>
<s:applicationComplete>
<![CDATA[
init();
]]>
</s:applicationComplete>
</s:Application>
コード2 ArrayUtilを使用して重複する要素を省いて配列をコピー(Flex 4)
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import com.adobe.utils.ArrayUtil;
private function init():void {
var a :Array = [1, 1, 2, 2, 3, 4, 5];
var result :Array = ArrayUtil.createUniqueCopy(a);
trace(result); //出力 : 1,2,3,4,5
}
]]>
</fx:Script>
<s:applicationComplete>
<![CDATA[
init();
]]>
</s:applicationComplete>
</s:Application>
いかがでしょうか。ものすごく地味でシンプルですが、しっかり仕事してくれていることが分かると思います。
【2】日本語文字コード変換ライブラリ「as3jcode」とは
「as3jcode」は、Lyo Kato氏によって作成されたActionScript 3用の日本語文字コード変換ライブラリです。GitHub上でソースコードも含めてMIT Licenseに基付いて公開されています。
as3jcodeは、以下の文字コード間の変換をサポートしています。
- UTF-8
- UTF-16
- EUC-JP
- ISO-2022-JP
- Shift_JIS
□ Flash Player 6以降はデフォルトの文字列エンコーディングは「UTF-8」
Flash Player 6以降では、明示的に以下のように定義しない限り、文字列のエンコーディングを「UTF-8」として処理します。
System.useCodepage = true;
必然的にFlexアプリケーションも、この条件に該当します(参考:Macromedia Flash Player 6 以降でのエンコーディングについて)。ですが、外部サービスとの連携するときにUTF-8以外を使用しなければならない場合があります。
さらにActionScriptのByteArrayクラスには、readMultiByte()やwriteMultiByte()などのメソッドがあります。これらを使用すれば、文字コードを変換することも可能なのですが、動作環境によって良からぬ結果を返すことがあります。
as3jcodeは、これらの問題を解決してくれます。
□ as3jcodeを使うには
これらのクラスを利用したい場合、ZIPファイルをダウンロードして、「lib」フォルダにあるas3jcodeのSWCファイルを使用します。
図6 as3jcodeのダウンロード |
図7 Flexプロジェクト内libsフォルダにas3jcodeのSWCファイルを置く |
□ as3jcodeを使うためのコード例
実際の使用例を紹介します。
コード3 文字列をEUC-JPに変換<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import org.coderepos.text.encoding.Jcode;
private function init():void {
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes("日本語の文字列(UTF-8)");
var eucBytes:ByteArray = Jcode.utf8_euc(bytes);
}
]]>
</fx:Script>
<s:applicationComplete>
<![CDATA[
init();
]]>
</s:applicationComplete>
</s:Application>
ほかにも、UTF-8を軸にしたクラスメソッドJcode.to_euc()、Jcode.to_jis()、Jcode.to_sjis()や、ほかの文字コードのバイト列からUTF-8の文字列変換を行うクラスメソッドJcode.from_euc()、Jcode.from_jis()、Jcode.from_sjis()などが用意されています。
機能が充実したライブラリなので、文字コードで悩んでいる方はぜひ試してみてはいかがでしょうか。
1-2-3 |
INDEX | ||
Flexフレームワークで変わるRIA開発の現場(4) Flex開発の超便利ライブラリとスキン機能-3つのSWC |
||
Page1 3つのSWCファイルにまつわるTips 【1】業務用で超便利なライブラリ「as3Corelib」とは |
||
Page2 【2】日本語文字コード変換ライブラリ「as3jcode」とは |
||
Page3 【3】デザインツールの拡張機能でスキンSWC作成 地味だがFlex業務アプリ開発には欠かせない |
リッチクライアント&帳票 全記事一覧へ |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|