Ich habe versucht, eine Mod für Scratch zu erstellen, die API der Website verwenden würde, um Informationen über Benutzer zu ziehen. Das Problem ist, dass ich es in zwei Blöcke brechen musste. (Diese Blöcke funktionieren, indem sie Funktionen aufrufen, die auf einer Tabelle mit Blocknamen und Funktionsnamen basieren, und übergeben die Argumente.) Ich habe es eingerichtet, wo der erste (der primAskAboutMe aufruft) die Informationen aus der API lädt und wann Wenn die Informationen geladen werden, kann der Benutzer den zweiten Block (der primReportAboutMe aufruft) verwenden, um den Wert zurückzugeben. Das Problem ist, dass ich den zweiten Block nicht bekommen kann, um eine Antwort zurückzugeben.Aktionsskript: API-Mod kann nicht in Scratch funktionieren
Entweder versuche ich Informationen falsch zu bekommen (was möglich ist, weil ich ActionScript/Flash zum ersten Mal benutzt habe), oder ich verstehe wirklich nicht, was ich bin tun.
* Hinweis: Original Scratch Repository. Dieser Code würde in src/primitives/Primitives.as gefunden werden (aber nicht, weil ich das noch nicht in mein eigenes Repository hochgeladen habe, weil ich mir nicht ganz sicher bin, wie).
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;
}
Jeder? Hat das eine Bump-Funktion? Hellooooo? – BKFighter
Was ist dein Scratch-Skript? Möglicherweise sind die Daten noch nicht geladen, wenn Sie versuchen, darauf zuzugreifen. Klicken Sie im obigen Beitrag auf Bearbeiten, um den Eintrag hinzuzufügen, und antworten Sie dann auf meinen Kommentar. – Scimonster
Nein, es gibt keine Bump-Funktion. Sie erhalten eine Antwort, wenn ein ** Freiwilliger ** Lust hat, sich mit Ihrer Frage zu befassen. Sie können also den zweiten Block nicht dazu bringen, eine Antwort zurückzugeben "_, was bedeutet das genau? Sie erhalten eine Zeichenfolge, aber es ist leer? Oder meinst du, du kannst die Funktion überhaupt nicht ausführen? Bevor Sie die Zeile 'return resultAM; ausführen, fügen Sie die Zeile' trace ("Ergebnis AM ist:" + resultAM); '. Was sagt es über das Ergebnis? –