Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
actionScript3和JSON:can';t了解如何使代码适应关键帧_Json_Actionscript 3 - Fatal编程技术网

actionScript3和JSON:can';t了解如何使代码适应关键帧

actionScript3和JSON:can';t了解如何使代码适应关键帧,json,actionscript-3,Json,Actionscript 3,因此,我是新的actionScript和JSON,无法理解如何调整代码以将其粘贴到关键帧。我从你那里得到了密码 我得到了编译器错误 场景1,层“AC”,第1帧,第2行1037:包不能嵌套 package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import com

因此,我是新的actionScript和JSON,无法理解如何调整代码以将其粘贴到关键帧。我从你那里得到了密码

我得到了编译器错误

场景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
        }
    }
}

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

“Main”必须扩展“MovieClip”而不是“Sprite”

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


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

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

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
}

Thanx,这很有帮助!但是我遇到了一个新的错误。我已经删除了import com.adobe.serialization.json.json;并将JSON.decode更改为JSON.parse。代码:“var jsonArray:Array=JSON.parse(loader.data);”它删除了3个新错误。我使用了[new error:Scene 1,Layer'AC',Frame 1,Line 26 1118:将一个带有静态类型Object的值隐式强制到一个可能不相关的类型数组。你知道怎么回事吗?使用它像:
var jsonArray:Object=JSON.decode(loader.data)
。然后跟踪/调试数据并稍后将其转换为数组。或者,如果您确定它是数组,则执行
=JSON.decode(loader.data)作为数组;
。你真的帮了大忙。我发现,我不需要使用数组。但作为记录,由于flashplayer 11,它使用解析而不是解码。无论如何,你让我达到了目标。非常感谢!不用担心,很高兴我能帮上忙:)干杯!