Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3列出所有可用的打印机_Actionscript 3 - Fatal编程技术网

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小程序具有不同的安全性,因此不必相同。