actionScript3和JSON:无法计算如何使代码适应关键帧

时间:2014-06-02 15:50:31

标签: json actionscript-3

所以,我是一个新的actionScript和JSON,并且无法弄清楚如何调整代码以便能够将其粘贴到关键帧。我有来自的代码。

http://snipplr.com/view/56283/

我收到编译错误。

场景1,层'AC',第1帧,第2行1037:包不能嵌套

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

    import com.adobe.serialization.json.JSON;


    public class Main extends Sprite 
    {

        private var _jsonPath:String = "json_example.txt";

        public function Main():void 
        {
            if (stage)
                init();
            else
                addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var loader:URLLoader = new URLLoader();
            var request:URLRequest = new URLRequest();
            request.url = _jsonPath;
            loader.addEventListener(Event.COMPLETE, onLoaderComplete);
            loader.load(request);
        }


        private function onLoaderComplete(e:Event):void 
        {
            var loader:URLLoader = URLLoader(e.target);
            var jsonArray:Array = JSON.decode(loader.data);

            trace("loader.data: " + loader.data);

            trace(jsonArray[0].Id);
            // 7

            trace(jsonArray[0].Mentions[0].Id);
            // 5

            trace(jsonArray[0].Mentions[0].StatusId);
            // 34

            trace(jsonArray[0].Mentions[0].CreatedDateTime);
            // /Date(1310051914617+0100)/

            trace(jsonArray[0].Mentions[0].Text);
            // Text

            trace(jsonArray[0].Mentions[0].UserName);
            // Username

            trace(jsonArray[0].Mentions[0].UserLocation);
            // UK

            trace(jsonArray[0].Mentions[0].UserLanguage);
            // en-GB

            trace(jsonArray[0].Mentions[0].IsCheckIn);
            // true

            trace(jsonArray[0].Tips[0].Id);
            // 5

            trace(jsonArray[0].Tips[0].FourSquareId);
            // 7e06c4b2-1fb5-4f35-9619-c99a384f5ae7

            trace(jsonArray[0].Tips[0].CreatedAt);
            // /Date(1310051914636+0100)/

            trace(jsonArray[0].Tips[0].Text);
            // Text

            trace(jsonArray[0].Tips[0].Username);
            // Username

            trace(jsonArray[0].Checkins);
            // 0

            trace(jsonArray[0].HereNow);
            // 0

            trace(jsonArray[0].TimeStamp);
            // /Date(1310051914639+0100)/

            trace(jsonArray[0].Venue.Id);
            // 7

            trace(jsonArray[0].Venue.FoursquareId);
            // cacbf3bd-f0aa-403d-9f9b-2056b4985ba1

            trace(jsonArray[0].Venue.Name);
            // Venue Name
        }
    }
}

2 个答案:

答案 0 :(得分:0)

只需删除所有特定于类的内容,并使用以下内容:

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

import com.adobe.serialization.json.JSON;


var _jsonPath:String = "json_example.txt";
function init(e:Event = null):void 
{
    removeEventListener(Event.ADDED_TO_STAGE, init);

    var loader:URLLoader = new URLLoader();
    var request:URLRequest = new URLRequest();
    request.url = _jsonPath;
    loader.addEventListener(Event.COMPLETE, onLoaderComplete);
    loader.load(request);
}

init(); // call it so it can start


function onLoaderComplete(e:Event):void 
{
    var loader:URLLoader = URLLoader(e.target);
    var jsonArray:Array = JSON.decode(loader.data);

    trace("loader.data: " + loader.data);

    trace(jsonArray[0].Id);
    // 7

    trace(jsonArray[0].Mentions[0].Id);
    // 5

    trace(jsonArray[0].Mentions[0].StatusId);
    // 34

    trace(jsonArray[0].Mentions[0].CreatedDateTime);
    // /Date(1310051914617+0100)/

    trace(jsonArray[0].Mentions[0].Text);
    // Text

    trace(jsonArray[0].Mentions[0].UserName);
    // Username

    trace(jsonArray[0].Mentions[0].UserLocation);
    // UK

    trace(jsonArray[0].Mentions[0].UserLanguage);
    // en-GB

    trace(jsonArray[0].Mentions[0].IsCheckIn);
    // true

    trace(jsonArray[0].Tips[0].Id);
    // 5

    trace(jsonArray[0].Tips[0].FourSquareId);
    // 7e06c4b2-1fb5-4f35-9619-c99a384f5ae7

    trace(jsonArray[0].Tips[0].CreatedAt);
    // /Date(1310051914636+0100)/

    trace(jsonArray[0].Tips[0].Text);
    // Text

    trace(jsonArray[0].Tips[0].Username);
    // Username

    trace(jsonArray[0].Checkins);
    // 0

    trace(jsonArray[0].HereNow);
    // 0

    trace(jsonArray[0].TimeStamp);
    // /Date(1310051914639+0100)/

    trace(jsonArray[0].Venue.Id);
    // 7

    trace(jsonArray[0].Venue.FoursquareId);
    // cacbf3bd-f0aa-403d-9f9b-2056b4985ba1

    trace(jsonArray[0].Venue.Name);
    // Venue Name
}

答案 1 :(得分:-1)

您不会将此类代码放入关键帧中,而是将其放入actionscript(.as)文件中。尝试将代码保存为与.fla文件位于同一文件夹中的 .as 文件。然后在Flash属性面板中将“Main”设为“Main”。

'Main'必须扩展'MovieClip'而非'Sprite。'

如果您从代码中的'中删除'package,也会有所帮助。

你可能仍然会遇到错误,但它们会更好,然后我们可以考虑它们。