使用可能なプリンターをすべてリストアップしたいと思います。私はこの答えを見つけました: As3 List down the Printers that available in the system しかし、これは機能しません。次のエラーが発生します:
エラー: 静的型 Class の参照を介して未定義の可能性のあるプロパティ プリンターにアクセスしています。
これは私のソースです:
package
{
import flash.display.Sprite;
import flash.printing.PrintJob;
import flash.external.ExternalInterface;
public class gethwinfo extends Sprite
{
public function gethwinfo()
{
ExternalInterface.call('getPrinter', getPrinterList());
}
public function getPrinterList():Array
{
var printerList:Vector.<String> = PrintJob.printers;
var deviceNames:Array = [];
if (printerList)
{
for (var i:int = 0; i < printerList.length; i++)
{
deviceNames.push(printerList[i]);
}
} else
{
deviceNames.push("No Printers");
}
deviceNames.sort();
return deviceNames;
}
}
}
このプロパティは as-reference: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob.html#printersに記載されていますが、エラーには、プロパティ プリンターが未定義であることが示されています。
コンパイラ オプションで厳密モードを true に設定すると、このエラーが発生します。false に設定すると、ビルドは成功しますが、このフラッシュ オブジェクトを呼び出すと、else ブランチに入り、「No Printers」という文字列を取得します。
ヒントをいただければ幸いです。