1

我不熟悉 Adob​​e Air,我正在将文件上传到服务器。出于简单测试的目的,我将上传 URL(特别是指向 amf 通道指向的服务器上的上传目录的 URL)硬编码到代码中。adobe air 有没有办法在运行时获取此服务器 URL?

或者这个问题没有任何意义,因为有更好的方法吗?

4

1 回答 1

0

在我看来,您希望上传 URL 是动态的。在这种情况下,您可以使用多种方法在运行时检索此类数据。如果我是你,我会使用 XML,我将在下面说明如何这样做。

//THE XML - Place in same folder as the FLA and name setup.xml
<?XML version="1.0" encoding="utf-8"?>
<xml>
    <upload url="path/to/file" />
</xml>

现在这是一个非常简单的 XML 文件,它可以很容易地包含背景音乐的信息、用 CDATA 包装的 CSS 格式文本或您想要保存和检索的任何其他类型的数据。

//The ActionScript 3.0

package
{
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.Event;

    public class TestDocClass extends Sprite
    {
        private var _xml:XML;
        private var _xmlLoader:URLLoader;
        private var _xmlRequest:URLRequest;

        public function TestDocClass():void
        {
            _xmlLoader = new URLLoader();
            _xmlRequest = new URLRequest('setup.xml');
            _xmlLoader.addEventListener(Event.COMPLETE, onXMLComplete, false, 0, true);
            _xmlLoader.load(_xmlRequest);
        }
        private function onXMLComplete(e:Event):void
        {
             _xmlLoader.removeEventListener(Event.COMPLETE, onXMLComplete, false);

            //Create the XML object and insert the data.
            _xml = new XML(e.target.data);

            //Now to access the upload line we use its Namespace of "upload"
            //The @ symbol specifies we are retrieving an attribute.

            trace(_xml.upload.@url);
        }
    }
}

因此,在您需要上传目的地的任何地方,您只需调用_xml.upload.@url或在数据到达时将变量设置为该值 ( var uploadURL:String = _xml.upload.@url)。

于 2008-11-25T19:04:55.203 回答