Top | 戻る
QRコード
ActionScript 3 は、やはりすごい!
パフォーマンスの向上に加えて、Stringクラスと各種文字コードのバイト配列間のエンコード/デコードも
flash.utils.ByteArray であっさり解決。
というわけで、いまいち使えなかった ActionScript版 QRコード が実用的なものになりました。
※ Windows/Mac(ppc) の Flash Player 9.0.28 で動作確認しています。
Mac(ppc)の Flash Player 9.0.16 では
文字化け(?)が発生します。
QRCodeDemo.as
package {
import com.d_project.qrcode.ErrorCorrectLevel;
import com.d_project.qrcode.QRCode;
import flash.display.Graphics;
import flash.display.Sprite;
public class QRCodeDemo extends Sprite {
public function QRCodeDemo() {
var width : Number = 200;
var height : Number = 200;
var padding : Number = 10;
var size : Number = Math.min(width, height) - padding * 2;
var xOffset : Number = (width - size) / 2;
var yOffset : Number = (height - size) / 2;
var qr : QRCode = QRCode.getMinimumQRCode("AS3ならば、文字コードの扱いも簡単!", ErrorCorrectLevel.H);
var cs : Number = size / qr.getModuleCount();
var g : Graphics = graphics;
for (var row : int = 0; row < qr.getModuleCount(); row++) {
for (var col : int = 0; col < qr.getModuleCount(); col++) {
g.beginFill( (qr.isDark(row, col)? 0 : 0xffffff) );
g.drawRect(cs * col + xOffset, cs * row + yOffset, cs, cs);
g.endFill();
}
}
}
}
}
実行結果
せっかくなのでタグ化してしまおう。
QRCodeDemo2.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:dp="http://www.d-project.com/flex"
layout="vertical" backgroundColor="#cccccc" paddingLeft="4" paddingRight="4" paddingTop="4" paddingBottom="4">
<dp:QRCode text="タグでもっとお手軽!" width="100" height="100"/>
</mx:Application>
実行結果
※ QRコード(R)は、株式会社デンソーウェーブの登録商標です。
Contents Copyright © Kazuhiko Arase