0

使用可能なプリンターをすべてリストアップしたいと思います。私はこの答えを見つけました: 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」という文字列を取得します。

ヒントをいただければ幸いです。

4

1 に答える 1

1

AIR でのみ使用できます。as-reference で AIR アイコンがその横にあるのはそのためです。

于 2013-02-05T15:27:42.687 に答える