Mit JSON als config in flashembed von jQuery-Tools
-
13-09-2019 - |
Frage
jQuery Tools hat flashembed, die ein JSON-Objekt als Konfigurationsparameter an die Einbettung Flash-Objekt passieren kann. Siehe die offizielle Seite .
Aber es nicht genau sagen, wie das JSON-Objekt in Flash zu bekommen. Und das ist hier die Frage ... Wie ??
Lösung 2
HTML und JS:
<script type="text/javascript" src="js/jquery.tools.min.js"></script>
<script type="text/javascript">
$(function(){
$("#flashPlacement").flashembed(
{
src:"Main.swf"
},
{ //flashvars
myJsonObj:
{
someString:"string",
someNumber:123,
someOtherObj:
{
someString:"string2",
someNumber:456
}
}
}
);
$("#flashPlacement *").show();
});
</script>
In der Flash-Teil benutzte ich Casalib 's FlashVarUtil. Aber ja, wie Christopher W. Allen-Poole sagte (loaderInfo.parameters.myJsonObj
) wird auch die Arbeit machen. (Bis für die Abstimmung)
Es wird ein String
in JSON sein, das ist der Teil ich nicht vorstellen konnte, wenn die Frage zu stellen.
AS3:
import com.adobe.serialization.json.JSONDecoder;
import org.casalib.util.FlashVarUtil;
import org.casalib.util.StageReference;
StageReference.setStage(stage);
var jsonString:String = FlashVarUtil.getValue("myJsonObj");
//use as3corelib's JSONDecoder
//http://code.google.com/p/as3corelib/
var obj:Object = new JSONDecoder(jsonString).getValue();
//now it can be used like...
trace(obj.someOtherObj.someString); //output: string2
Andere Tipps
Das hängt davon ab, ob Sie in AS2 oder AS3 sind. Ich glaube, AS2 einfach die Variablen auf der _root legt, aber ich konnte täuschen. In AS3, müssen Sie Ihr root.loaderInfo.parameters Objekt gehen. Alle Variablen werden dort gespeichert in Schlüssel / Wert-Paaren.
Beispiel:
myAS2Swf.swf?example=72&other="Quack"
// in the swf:
trace( _root.example ); // 72
trace( _root.other ); // Quack
// in AS3
myAS3Swf.swf?example=42&other="Duck"
// in the swf:
trace( root.loaderInfo.parameters.example ); // 42
trace( root.loaderInfo.parameters.other ); // Duck