2010-06-30 7 views
1

J'essaie de laisser l'utilisateur définir la couleur de fond de mon application flex 4 en définissant la couleur dans la variable flashvars du javascript appelant.Passer flashvar dans flex 4

Cependant, je ne semble pas pouvoir accéder aux flashvars du tout, le meilleur résultat que je peux obtenir (de trace) est undefined.

Le javascript ressemble:

<script type="text/javascript"> 
    var flashvars = {}; 
    flashvars.firstname = "bob"; 
    var params = { 
     menu: "false", 
     scale: "noScale", 
     allowFullscreen: "true", 
     allowScriptAccess: "always", 
     bgcolor: "#FF0000" 
    }; 
    var attributes = { 
     id:"OvaWidget" 
    }; 
    swfobject.embedSWF("myApp.swf", "altContent", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attributes); 
</script> 

Et mon MXML est

<fx:Script> 
    <![CDATA[ 
    import mx.core.FlexGlobals; 

    [Bindable] 
    public var firstname:String; 

    protected function init():void 
    { 
     trace(FlexGlobals.topLevelApplication.parameters[firstname]); 
    } 
    ]]> 
</fx:Script> 

<s:Label text="Name: "/> 
<s:Label text="{firstname}" fontWeight="bold"/> 

Toutes les idées? Toute aide appréciée!

Répondre

1

Vous créez un objet flashVars. Donc vous devez changer votre code à ceci:

trace(FlexGlobals.topLevelApplication.parameters.firstname);