Ошибка: определение flash.net:NetworkInfo не удалось найти при использовании import flash.net.NetworkInfo

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

Команда: / 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 );
        }

    }

}

Это простой пример, и он отлично работает. Но если я добавлю импорт,

import flash.net.NetworkInfo;

затем выдается следующая ошибка Ошибка: Не удалось найти определение flash.net:NetworkInfo.

Я прошел через различные учебные пособия, но, похоже, не могу заставить их работать. Так нужно ли мне включать какую-либо библиотеку при выполнении команды?


person user3213851    schedule 19.12.2014    source источник


Ответы (2)


Прежде чем говорить о своем коде, вы должны знать, что flash.net.NetworkInfo - это доступно только для Air 2 и выше. И как Adobe сказал об этом: «... Эта функция поддерживается во всех настольных операционных системах и AIR для телевизионных устройств, но не поддерживается на всех мобильных устройствах. Вы можете проверить поддержку во время выполнения с помощью 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>
person akmozo    schedule 19.12.2014
comment
отображается следующая ошибка Ошибка: не удалось разрешить ‹s: Application› в реализации компонента. К вашему сведению, я использую Flex 4.6 - person user3213851; 19.12.2014
comment
@ user3213851 Создайте новое приложение Flex - Air, скопируйте только часть кода и используйте ее в своем приложении. - person akmozo; 19.12.2014

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

/mxmlc ./Main.as -load-config+=$FLEX_HOME/frameworks/air-config.xml
person Brian    schedule 19.12.2014