Actionscript 3 as3列出所有可用的打印机
我想列出所有可用的打印机。我找到了这个答案: 但这不起作用,我得到一个错误: 错误:通过静态类型类的引用访问可能未定义的属性打印机 这是我的消息来源:Actionscript 3 as3列出所有可用的打印机,actionscript-3,Actionscript 3,我想列出所有可用的打印机。我找到了这个答案: 但这不起作用,我得到一个错误: 错误:通过静态类型类的引用访问可能未定义的属性打印机 这是我的消息来源: package { import flash.display.Sprite; import flash.printing.PrintJob; import flash.external.ExternalInterface; public class gethwinfo extends Sprite { public functio
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;
}
}
}
包
{
导入flash.display.Sprite;
导入flash.printing.PrintJob;
导入flash.external.ExternalInterface;
公共类gethwinfo扩展了Sprite
{
公共函数gethwinfo()
{
调用('getPrinter',getPrinterList());
}
公共函数getPrinterList():数组
{
var printerList:Vector.=PrintJob.printers;
var deviceNames:Array=[];
如果(打印机列表)
{
for(变量i:int=0;i
错误表明属性打印机未定义,尽管此属性列在as引用中:
我在编译器选项中将strict mode设置为true时出现此错误。当我将其设置为false时,构建成功,但是当我调用这个flash对象时,它进入else分支,我得到字符串“No Printers”,这应该不是,因为我的机器上有6个可用的打印机服务
我希望你能给我一个提示。它只在空中有售。这就是为什么在as参考中空气图标位于其旁边。感谢您的回复。我将平台更改为AIR3.5,现在它构建时没有错误,但它仍然通过else分支。我使用FlexSDK 4.6.0和AIR3.5。严格模式设置为true.PrintJob.printers:如果没有可用的打印机或系统不支持打印,则该值为null。当然,这是有意义的,但我的系统上有可用的打印机。我写了一个Java小程序,它向我展示了6台可用的打印机(或打印机服务),我想用Actionscript做同样的事情。我将把您的答案标记为一个解决方案,因为主要问题似乎已经解决。java小程序具有不同的安全性,因此不必相同。