我想列出所有可用的打印机。我找到了这个答案: 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个打印机服务。
我希望你能给我一个提示。
答案 0 :(得分:1)
它仅在AIR中可用。这就是为什么AIR图标在as-reference中紧挨着它。