2010-09-17 3 views
0

Supposons que tout ce qui se passe d'abord dans un swf client est un utilisateur clique sur un lien hypertexte dans un objet texte de la swf, donc cela demande une « page » du serveur. En réponse, le serveur modifie simplement ce swf existant dans le navigateur client, par exemple (?) En invoquant des fonctions publiques, et en passant éventuellement en paramètre le nom de l'image ou des fichiers de données téléchargés en réponse à la requête d'URL. La partie cruciale est que tout ce qui peut arriver initialement dans le fichier SWF est une requête "page" URL. Est-ce communément fait et si oui, comment.mises à jour partielles à un fichier SWF

Répondre

2

En cliquant sur un lien hypertexte dans AS3 déclenchera un événement TextEvent.LINK, vous pouvez alors écouter cet événement et dans votre fonction appelez le service concerné qui à son tour vous enverra une réponse que vous pouvez utiliser pour mettre à jour votre données swf.

Vérifiez la documentation ici pour la classe TextEvent http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/

Maintenant, tout dépend de ce que votre lien est, si elle charge un XML, vous pouvez utiliser la classe URLLoader pour charger les données XML

private function init():void 
{ 
    var tf:TextField = new TextField(); 
    tf.htmlText = "<a href='http://example.com/data.xml'>Update Data</a>"; 
    tf.addEventListener(TextEvent.LINK, clickHandler); 
    addChild(tf); 
} 

private function clickHandler(e:TextEvent):void 
{ 
    trace(e.type); // link 
    trace(e.text); // http://example.com/data.xml 

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE , dataLoaded); 
    loader.load(new URLRequest(e.text)); 
} 

private function dataLoaded(event:Event):void 
{ 
    trace(event.target.data);// xml content 
    //from here you can then parse the XML & update your swf 
} 
+0

Merci, oui cela devrait fonctionner - est-ce que j'ai spécial à faire pour garder le navigateur d'essayer d'afficher le fichier xml ainsi, car ce serait le comportement par défaut. – Mark

+0

Non, le navigateur n'affichera pas le fichier XML. vous appelez l'URL à l'intérieur de Flash, donc le navigateur ne le saura pas, ce qui explique aussi pourquoi la page du navigateur ne se rafraîchira pas – PatrickS

+0

Je le saurai dans une minute je suppose, mais est-ce parce que vous avez ajouté un evenListener pour clickHandler que la page ne sera pas affichée. – Mark