第4回
Flex開発の超便利ライブラリとスキン機能-3つのSWC
taiga.jp
廣畑 大雅
2010/8/5
- - PR -
□ 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業務アプリ開発には欠かせない |
||
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|




