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;
    }   
}
}

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

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

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

4

1 回答 1

1

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

于 2013-02-05T15:27:42.687 回答