我想列出所有可用的打印机。我找到了这个答案: 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 个打印机服务可用。
我希望你能给我一个提示。