2014-12-19 78 views
0

我正在嘗試使用actionscript代碼構建swf文件。我已經下載了Flex SDK。現在我正在嘗試編譯.as文件。它工作正常,並使用Flex Home的bin文件夾中的以下命令編譯成.swf文件。 。錯誤:定義使用導入flash.net.NetworkInfo時無法找到flash.net:NetworkInfo

命令:/ mxmlc的/home/anshul/Downloads/HelloWorld/src/Main.as

文件名:Main.as

package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.text.TextField; 

    public class Main extends Sprite 
    { 

     public function Main():void 
     { 
      if (stage) init(); 
     } 

     private function init(e:Event = null):void 
     { 
      var tf:TextField = new TextField(); 
      tf.text = "Hello, world!, Lets see working or not"; 
      addChild(tf); 
     } 

    } 

} 

這是一個基本的例子和工作正常。但是如果我添加一個導入,請輸入:flash.net.NetworkInfo;

然後它會拋出以下錯誤 錯誤:定義flash.net:NetworkInfo無法找到。

我已經通過各種教程,但似乎無法使其工作。那麼在運行命令時我需要包含任何庫嗎?

回答

0

在談論你的代碼之前,你應該知道flash.net.NetworkInfoonly available for Air 2 and up。正如Adobe所說:「...此功能在所有桌面操作系統和AIR for TV設備上都受支持,但在所有移動設備上都不受支持。您可以使用NetworkInfo.isSupported屬性在運行時測試支持。有關跨多個配置文件的API支持的更多信息,請參閱AIR配置文件支持......「,它在所有移動設備上都不受支持,所以最好使用NetworkInfo.isSupported來驗證它是否受支持。

關於如何使用它,需要從Adobe.com我在此代碼已經實現了這個例子:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         width="620" height="573" creationComplete="init(event)"> 
    <fx:Script> 
     <![CDATA[   

      import flash.net.NetworkInfo;   
      import mx.events.FlexEvent; 

      protected function init(event:FlexEvent):void 
      { 
       // enable the button only if NetworkInfo is supported 
       btn.enabled = NetworkInfo.isSupported; 
      }   
      protected function btn_clickHandler(event:MouseEvent):void 
      { 
       // get device network interfaces 
       var output:String = ''; 
       var results:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces(); 
       for (var i:int=0; i<results.length; i++) { 
        output = output + "Name: " + results[i].name + "\n" 
         + "DisplayName: " + results[i].displayName + "\n" 
         + "MTU: " + results[i].mtu + "\n" 
         + "HardwareAddr: " + results[i].hardwareAddress + "\n" 
         + "Active: " + results[i].active + "\n"; 
        for (var j:int=0; j<results[i].addresses.length; j++) { 
         output = output + "Addr: " + results[i].addresses[j].address + "\n" 
          + "Broadcast: " + results[i].addresses[j].broadcast + "\n" 
          + "PrefixLength: " + results[i].addresses[j].prefixLength + "\n" 
          + "IPVersion: " + results[i].addresses[j].ipVersion + "\n"; 
        } 
        output = output + "\n"; 
       } 
       txt.text = output; 
      } 

     ]]> 
    </fx:Script> 
    <s:Button id="btn" x="10" y="10" width="192" height="33" label="Get Network Interfaces" 
       click="btn_clickHandler(event)"/> 
    <s:TextArea id="txt" x="8" y="45" width="602" height="509"/> 
</s:WindowedApplication> 
+0

它顯示以下錯誤錯誤:無法解析到組件實現。僅供參考我正在使用Flex 4.6 – user3213851 2014-12-19 10:32:24

+0

@ user3213851創建一個新的Flex-Air應用程序並僅複製代碼部分並將其用於您的應用程序。 – akmozo 2014-12-19 11:26:11

0

正如@akmozo說,flash.net.NetworkInfo是AIR類,所以你需要包括在AIR配置您的構建命令:

/mxmlc ./Main.as -load-config+=$FLEX_HOME/frameworks/air-config.xml 
相關問題