2014-12-19 3 views
0

Я пытаюсь создать swf-файл с помощью кода actionscript. Я загрузил Flex SDK. Теперь я пытаюсь скомпилировать файл .as. Он отлично работает и компилируется в .swf-файл, используя следующую команду из папки bin в Flex Home. .Ошибка: определение flash.net:NetworkInfo не удалось найти при использовании импорта flash.net.NetworkInfo

Команда:/mxmlc /home/anshul/Downloads/HelloWorld/src/Main.as

FileName: 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.NetworkInfo - only available for Air 2 and up. И как об этом заявила Adobe: «... Эта функция поддерживается во всех настольных операционных системах и устройствах AIR для ТВ, но не поддерживается на всех мобильных устройствах. Вы можете протестировать поддержку во время выполнения, используя свойство NetworkInfo.isSupported См. «Поддержка профиля AIR» для получения дополнительной информации об API-интерфейсе для нескольких профилей ... », он не поддерживается на всех мобильных устройствах, поэтому лучше использовать 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

Ошибка: Не удалось разрешить реализацию компонента. FYI Я использую Flex 4.6 – user3213851

+0

@ user3213851 Создайте новое приложение Flex-Air и скопируйте только часть кода и используйте его в своем приложении. – akmozo

0

Как @akmozo сказал, flash.net.NetworkInfo является классом AIR, так что вам нужно включить конфигурации AIR в ваша команда сборки:

/mxmlc ./Main.as -load-config+=$FLEX_HOME/frameworks/air-config.xml 
Смежные вопросы