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>
実行結果
  ソース: qrcode-as3-1.1.zip
  ※ QRコード(R)は、株式会社デンソーウェーブの登録商標です。

Contents Copyright © Kazuhiko Arase