首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:使用导入flash.net.NetworkInfo时找不到定义flash.net:NetworkInfo

错误:使用导入flash.net.NetworkInfo时找不到定义flash.net:NetworkInfo
EN

Stack Overflow用户
提问于 2014-12-19 14:51:54
回答 2查看 587关注 0票数 0

我正在尝试使用actionscript代码构建swf文件。我已经下载了Flex SDK。现在我正在尝试编译.as文件。它运行良好,并使用Flex Home的bin文件夹中的以下命令编译成.swf文件。。

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

FileName: Main.as

代码语言:javascript
复制
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。

我已经通过了各种教程,但似乎不能让它工作。那么,我是否需要在运行该命令时包含任何库?

EN

回答 2

Stack Overflow用户

发布于 2014-12-19 17:10:35

在讨论代码之前,您应该知道flash.net.NetworkInfoonly available for Air 2 and up。正如奥多比所说:“……这个功能在所有桌面操作系统和电视设备的AIR上都受支持,但不是所有移动设备都支持。你可以在运行时使用NetworkInfo.isSupported属性测试支持。有关多个配置文件上的应用编程接口支持的更多信息,请参阅AIR配置文件支持。……”,并不是所有的移动设备都支持它,这就是为什么最好使用NetworkInfo.isSupported来验证它是否受支持。

有关如何使用它,请以我在此代码中实现的Adobe.com中的示例为例:

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2014-12-20 00:48:06

正如@akmozo所说,flash.net.NetworkInfo是一个AIR类,因此您需要在您的构建命令中包含AIR配置:

代码语言:javascript
复制
/mxmlc ./Main.as -load-config+=$FLEX_HOME/frameworks/air-config.xml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27561035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档