2013-02-05 2 views
0

availble 인 모든 사용 가능한 프린터를 나열하고 싶습니다. 나는이 대답을 찾을 : As3 List down the Printers that available in the system 을하지만 나는이 오류지고있어, 작동하지 않습니다 정적 유형 클래스를 참조하여 정의되지 않은 속성 프린터의 액세스 :as3 사용 가능한 모든 프린터를 나열하십시오.

오류.

내 소스 :

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로 설정하면 빌드가 완료되지만이 플래시 객체를 호출하면 else 브랜치로 이동하고 "No Printers"문자열이 생깁니다.이 프린터는 내 컴퓨터에서 6 가지 프린터 서비스를 사용할 수 있기 때문에 사용할 수 없습니다.

나에게 힌트를 줄 수 있기를 바랍니다.

답변

1

AIR에서만 사용 가능합니다. 그 이유는 AIR 아이콘이 as-reference에서 그 옆에있는 이유입니다.

+0

답장을 보내 주셔서 감사합니다. 플랫폼을 AIR 3.5로 변경했습니다. 이제 오류없이 빌드되지만, 여전히 else 브랜치를 통과합니다. Flex SDK 4.6.0 및 AIR 3.5를 사용합니다. 엄격 모드가 true로 설정됩니다. – Dave

+0

PrintJob.printers : 프린터를 사용할 수 없거나 시스템에서 인쇄를 지원하지 않는 경우 값은 null입니다. – csomakk

+0

물론 이치에 맞지만 시스템에서 사용할 수있는 프린터가 있습니다. 필자는 Java 애플릿을 작성하여 6 대의 프린터 (또는 프린터 서비스)를 사용할 수 있음을 보여 주었고 Actionscript를 사용하여 동일한 작업을 수행하려고했습니다. 주요 문제가 수정 된 것으로 보아 답을 해결책으로 표시하겠습니다. – Dave

관련 문제