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 的旁边。