动作脚本:无法在Scratch中使用API​​ mod

时间:2016-05-28 21:16:49

标签: flash actionscript mit-scratch

我一直试图为Scratch创建一个使用网站API来提取用户信息的模式。问题是我必须把它分成两个区块。 (这些块通过调用基于具有块名称和函数名称的表的函数来工作,并传入参数。)我已将其设置在第一个(调用primAskAboutMe)加载来自API的信息的位置,并且然后当信息加载时,用户可以使用第二个块(调用primReportAboutMe)来返回值。问题是我无法获得第二个块来回答答案。

所以要么我试图以错误的方式获取信息,(这是可能的,因为这是我第一次使用Action Script / Flash或其他任何方式),或者我真的不喜欢明白我在做什么。

*注意:Original Scratch Repository。这段代码可以在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;


}

1 个答案:

答案 0 :(得分:0)

  

问题在于我无法让第二个块返回答案。

我认为这是因为您还没有为返回的结果设置接收器。如果您创建报告字符串,然后更新为str_Report = primReportAboutMe();,则会将resultAM的文本返回到str_Report

这是一个小的可测试的例子。也许它会以某种方式帮助你...... 请记住,因为primReportAboutMe返回String数据,所以必须使用它来更新一些String 变量

var resultAM:String = "";
var checkResult:String = "";

resultAM="foo";

checkResult = primReportAboutMe(); //# update this String with function returned String
trace ("Check Result is : " + checkResult); //# shows... Check Result is : foo

function primReportAboutMe():String
{
    return resultAM; //# returns a String's current value
}