AS3 - 从URL加载图像坐标

时间:2014-10-22 02:05:18

标签: android actionscript-3 flash url air

我正在使用Flash Pro CC& amp ;;在Air for Android中开发Android应用程序。我厌倦了一直推送更新来更改需要每隔几天移动到特定位置的图像的生成位置。直到需要推送更新前几分钟,我才知道位置。只需让应用程序在我的网站上以.txt文件启动时加载图像的生成坐标就会快得多。我需要一些东西,我只需在文件中输入X和Y坐标。然后加载信息,AS3在那些坐标处产生图像。如果文本文件中没有可用的坐标(一周中的5天不会有),我需要在我放置的任何地方显示不同的图像。我可能只是有一个单独的框架。

非常感谢任何帮助&我更喜欢它,如果图像可以在补间动画中使用,但如果没有,那么我会解决一些问题。

注意:我是AS3编码的新手,但我已经找到Flash本身用时间轴制作动画。

2 个答案:

答案 0 :(得分:0)

查看URLRequestURLLoader以检索数据。要在特定位置生成图像,请考虑仅移动它;舞台上的任何对象都是DisplayObject,而DisplayObjects具有属性xy。要更换图像,请查看DisplayObjectContainer,特别是函数DisplayObjectContainer.addChild(child:DisplayObject)DisplayObjectContainer.removeChild(child:DisplayObject)。我已经提供了每个相关功能的文档链接。

如果每天更新,请查看Date类 - 这将允许您找出它的日期以及是否需要发送URL请求以将文本文件加载到显示图像。

如果您对这些课程的使用有任何具体问题,我认为如果你提出一个新问题,并附上一个链接回到这个问题,那么它是最好的。你对英语很好,对AS3不太好(正如你所说),所以我可以在需要的地方解释相关的部分,但如果我要一次性解释这整个功能,那将是一个漫长而复杂的故事。 。 ...我认为你会发现这些类名也会使Google搜索变得更容易。


我希望您必须使用带有URLLoader的{​​{1}}来加载文本文件,然后根据结果显示图像,方法是将图像添加到舞台上{{1如果它还没有,然后设置其URLRequestaddChild值。您必须使用x类来检查每次用户启动应用程序或执行某些特定操作时是否需要发出新请求。

答案 1 :(得分:0)

我在这里有完成的代码。 loadURL是Flash加载的文档类。一切都很棒!

package  {
    // IMPORTS EVENTS USED
    import flash.display.MovieClip;
    import flash.net.URLRequest;
    import flash.net.URLLoader;
    import flash.events.UncaughtErrorEvent;
    import flash.events.ErrorEvent;
    import flash.events.Event;

    // DECLARES VARIABLES
    public class loadURL extends MovieClip {
        public var Xurl:String = "URL GOES HERE";
        public var Yurl:String = "URL GOES HERE";
        public var URLloaderX:URLLoader = new URLLoader();
        public var URLloaderY:URLLoader = new URLLoader();
        public var marker:Marker = new Marker();
        public var gone:Gone = new Gone();
        public var connectionerr:ConnectionErr = new ConnectionErr();

        // CODE EXECUTED UPON LAUNCH
        public function loadURL() {
            // constructor code
            trace("Loaded");
            URLloaderX.addEventListener(Event.COMPLETE, completeHandlerX);
            URLloaderX.load(new URLRequest(Xurl));
            URLloaderY.addEventListener(Event.COMPLETE, completeHandlerY);
            URLloaderY.load(new URLRequest(Yurl));
            loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);
        }
function completeHandlerX(event:Event):void
    {
        if(URLloaderX.data == null||URLloaderX.data==(""))
            {addChild(gone)}
        else{addChild(marker);marker.x = (URLloaderX.data)}
    }
function completeHandlerY(event:Event):void
    {
        if(URLloaderY.data == null||URLloaderY.data==("")){}
            marker.y = (URLloaderY.data)
    }

private function onUncaughtError(e:UncaughtErrorEvent):void //Checks for no internet connection

    {
        e.preventDefault(); //leave this

// RESULT OF NO INTERNET HERE
        addChild(connectionerr);
    }   
    }
    }