2009-04-16 3 views
1

J'ai une animation Flash qui est utilisée pour plusieurs sites Web. Sur chaque site, je voudrais spécifier un fichier XML différent dans le balisage. Comment saisir cette chaîne et l'utiliser dans ActionScript?Transmettre une chaîne à partir de html à l'intérieur <object> dans Actionscript

dans les balises que je veux faire ceci:

<object ... 
    <param name=FlashVars value="urlXML=myXML.xml" /> 
</object> 

en actionscript 3.0, im essayant de le faire:

var urlXML=_root.urlXML; 

Actuellement quand je fais cela, je reçois une erreur de sortie en disant ' accès d'une propriété indéfinie ... 'Comment suis-je censé saisir cette chaîne?

+0

C'est une erreur assez commune quand les gens se déplacent à AS3. Vous devriez mettre à jour la question avec la réponse ou écrire votre propre réponse, ainsi les autres personnes trouvant cette entrée peuvent la trouver plus facilement. Ou posible en en faisant un wiki. –

+0

Oublié de mentionner swfobject. Vous devriez le regarder pour intégrer votre objet flash. http://code.google.com/p/swfobject/ –

Répondre

1

Ce n'est pas ainsi que vous accédez à FlashVars dans AS3. Vous avez besoin de la propriété de paramètre root loaderInfo, qui contient tous les FlashVars qui ont été ajoutés.


var urlXML: String = root.loaderInfo.parameters.urlXML; 
+0

cela a fonctionné pour moi aussi: var urlXML = loaderInfo.parameters.urlXML; – AyexeM

0

Note: Adobe KB article

FlashVars doivent être affectés à la fois les balises OBJECT et EMBED afin de travailler sur tous les navigateurs.

-1

Il devrait juste être là - vous n'avez pas besoin de _root. Voir this.

+0

C'était dans AS2. Mais j'ai trouvé la solution. J'avais besoin de cette ligne de code: var urlXML = loaderInfo.parameters.urlXML; – AyexeM

0

Ma première réponse ... donc voilà:

J'ai une petite application de lecteur vidéo, j'ai développé pour anciens de l'Université McGill. Vous pouvez le voir ici: http://www.alumni.mcgill.ca/esol/holiday/2008/flash.php?giftCode=123456 Il prend un «code cadeau» de l'URL, mais vous pouvez toujours coder en dur votre fichier .xml.

Voici l'objet et Embed (s) J'utilise:

<embed src="mcgill_annual_fund200903.swf**?giftCode=<?php echo $giftCode; ?>**" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="680" height="550"></embed> 

Et avec le .js de script intégré:

<script type="text/javascript"> 

AC_FL_RunContent ('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0', 'largeur ',' 680 ',' hauteur ',' 550 ',' src ',' mcgill_annual_fund200903 **? GiftCode = ** ',' qualité ',' high ',' pluginspage ',' http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash ',' film ',' mcgill_annual_fund200903? giftCode = ',' wmode ',' transparent '); // fin code AC

Et puis pour récupérer les informations dans AS3:

//get the giftCode 
var gCode:String; 
var giftCode:String; 
function loaderComplete(lEvent:Event){ 
    gCode = loaderInfo.loaderURL; 
    giftCode = gCode.substr((gCode.indexOf("?giftCode=")+10)); 
    //giftCodeTxt.text= giftCode; 
} 
Questions connexes