actionScript3和JSON:can';t了解如何使代码适应关键帧
因此,我是新的actionScript和JSON,无法理解如何调整代码以将其粘贴到关键帧。我从你那里得到了密码 我得到了编译器错误 场景1,层“AC”,第1帧,第2行1037:包不能嵌套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
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,它使用解析而不是解码。无论如何,你让我达到了目标。非常感谢!不用担心,很高兴我能帮上忙:)干杯!