我一直在尝试为Scratch制作一个 mod,它会使用网站的API来提取有关用户的信息。问题是我不得不把它分成两个块。(这些块通过基于具有块名称和函数名称的表调用函数并传入参数来工作。)我已经将它设置在第一个(调用 primAskAboutMe)从 API 加载信息的位置,然后当信息加载后,用户可以使用第二个块(调用 primReportAboutMe)返回值。问题是我无法让第二个块返回答案。
所以要么我试图以错误的方式获取信息,(这是可能的,因为这是我第一次使用动作脚本/Flash 或其他什么,)或者我真的不明白我在做什么。
*注意:原始 Scratch 存储库。该代码可以在 src/primitives/Primitives.as 中找到(但不是因为我还没有将它上传到我自己的存储库,因为我不太确定如何)。
protected var resultAM:String;
protected function primAskAboutMe(b:Block):void {
var user:String = interp.arg(b, 0);
var loader:Loader = new Loader();
var url:String = 'http://www.api.scratch.mit.edu/users/'+user;
var urlReq:URLRequest = new URLRequest(url);
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onCompleteAboutMe );
loader.load(urlReq);
}
protected function onCompleteAboutMe(e:Event):void{
//resultAM = e.target.data;
resultAM="foo";
}
protected function primReportAboutMe():String{
return resultAM;
}