retinaディスプレイを搭載したノートパソコンや、4kディスプレイなど、High DPIな環境が増えてきました。Flash Playerでは11.2からバックバッファがネイティブ解像度で確保されるようになり、ベクトルデータは自動的にHigh DPI対応されるようになりました。

しかし、高速化のためにBitmapDataを使って画像をキャッシュしているような場合、自動的にはHigh DPI対応されません。この場合、アクションスクリプトからDPIを取得して、High DPI対応する必要があります。

現在のDPIはFlash Player 11.5から加わった、stage.contentsScaleFactorで取得することができます。(Adobe AIR Developer Center /Creating and using high resolution images in Flash Player

この値を使用して、以下のように、stage.contentsScaleFactor倍したBitmapDataを定義しておき、Bitmapインスタンスのwidthとheightをstage.contentsScaleFactorで割ってaddChildすることで、High DPIで描画することができます。

var myBitmapData:BitmapData = new BitmapData(
 tf.height*stage.contentsScaleFactor, tf.width*stage.contentsScaleFactor);
bitmap = new Bitmap(myBitmapData);
bitmap.height /= stage.contentsScaleFactor;
bitmap.width /= stage.contentsScaleFactor;
addChild(bitmap);