2010-08-29 29 views
0

J'ai créé un simple chargeur SWF dans ActionScript 3.0. Il charge un fichier SWF à partir d'un serveur et le lit ensuite. Pendant le téléchargement, il affiche l'écran "chargement".
Son défaut principal est qu'il ne peut charger qu'une seule application Flash - celle pour laquelle elle est compilée. Disons que c'est nommé test1.swf.
Est-il possible de faire en sorte que le chargeur prenne en charge plus d'une application Flash (par exemple test2.swf et test3.swf)? Je veux dire en lui passant des paramètres externes et pas en créant un autre chargeur. Est-ce que Javascript est le seul moyen de le faire? Je ne veux pas que mon chargeur nécessite le support Javascript.
Et je ne veux vraiment pas créer des chargeurs séparés pour toutes mes applications ...
Merci d'avance.
ActionScript 3 - un chargeur qui prend en charge de nombreuses applications?

Répondre

1

Afin de charger un fichier SWF externe, votre chargeur n'a besoin que de charger l'URL du swf, cette URL n'a pas besoin d'être codée en dur. Il y a plusieurs façons de passer des paramètres à un fichier SWF et ils ne nécessitent pas nécessairement Javascript.

Vous pourriez charger un fichier XML par exemple, un simple fichier texte fonctionnerait aussi, vous pourriez aussi utiliser un script PHP. Utiliser flahsvars nécessiterait Javascript, mais seulement pour définir votre application dans votre page HTML. Avec l'exemple suivant, votre application n'a pas besoin de recompiler, il vous suffit de modifier l'URL dans le fichier texte.

 
Example with a text file containing a url, something like this: 
http://yourwebsite.com/test1.swf 

var urlLoader:URLLoader = new URLLoader(); 
urlLoader.addEventListener(Event.COMPLETE , completeHandler); 
urlLoader.load(new URLRequest('swfURL.txt')); 

function completeHandler(event:Event):void 
{ 
loadExternalSWF(event.target.data); 
event.target.removeEventListener(Event.COMPLETE , completeHandler); 
} 

function loadExternalSWF(url:String):void 
{ 
//your code here , using the url value 
trace(url);//should return your text file content 
} 
+0

Merci pour la réponse. Quoi qu'il en soit, je ne sais pas comment charger du XML ou un fichier texte peut résoudre mon problème, alors que je dois passer les paramètres directement à partir de la page web sur laquelle le Flash est affiché. Je pense que je vais enfin décider d'utiliser Javascript ... – rhino

+1

vous pouvez utiliser FlashVars à la place – Eugene

+0

Merci. :) Je ne connaissais pas FlashVars auparavant, maintenant je l'ai cherché dans Google et il semble être vraiment utile. Je vais probablement l'utiliser, merci. – rhino