关于 actionscript 3:as3 列出所有可用的打印机

as3 list all available printer

我想列出所有可用的打印机。我找到了这个答案:
As3 列出系统中可用的打印机
但这不起作用,我收到此错误:

错误:通过静态类型 Class 的引用访问可能未定义的属性打印机。

这是我的来源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
    }  
}
}

错误表明属性打印机未定义,尽管此属性列在参考中:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob。 html#printers

在编译器选项中将严格模式设置为 true 时出现此错误。当我将它设置为 false 时,构建成功,但是当我调用这个 flash 对象时,它进入 else 分支,我得到字符串"No Printers",这不应该是,因为我的机器上有 6 个打印机服务可用。

希望你能给我一个提示。


它仅在 AIR 中可用。这就是为什么 AIR 图标在 as-reference 的旁边。