as3列出所有可用的打印机

时间:2013-02-05 15:21:10

标签: actionscript-3

我想列出所有可用的打印机。我找到了这个答案: 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时,构建是成功的,但当我调用这个flash对象时,它进入else分支,我得到字符串“No Printers”,这不应该是,因为我的机器上有6个打印机服务。

我希望你能给我一个提示。

1 个答案:

答案 0 :(得分:1)

它仅在AIR中可用。这就是为什么AIR图标在as-reference中紧挨着它。