2010-11-15 14 views
3

Quelques faits d'abord:
1. Je ne peux utiliser ActionScript 2.
2. Tous les fichiers sont dans le même domaine (par exemple « http://www.example.com ").ActionScript 2 charge un autre fichier SWF qui charge d'autres fichiers - problème chemin/url relatif

J'ai un fichier SWF de chargement qui agit comme un outil de sélection (« de auto_magic.swf ») situé à «/» dans le site Web (le dossier racine).
Un utilisateur sélectionne l'outil dont il a besoin (c'est un système de diagnostic mécanique) et le film principal le charge (actuellement j'utilise loadMovie() - suggérer autre chose si nécessaire).
Cet outil se trouve à l'adresse "/tools /[tools_name]/tool_main.swf".

Maintenant, le "tool_main.swf" se charge très bien. Le problème est que "tool_main.swf" doit charger d'autres fichiers situés dans son dossier, donc par exemple il essaye de charger dossier dédié de l'outil - à la place, il cherche ce fichier dans le dossier racine "/" où se trouve "auto_magic.swf", probablement parce que le swf principal du film vient de là.

Pour faire encore pire, je ne peux pas modifier le fichier SWF de l'outil ("tool_main.swf") car il provient d'un tiers.

Y a-t-il une solution? Pour autant que je vois cela j'ai besoin d'une de ces solutions;
1. Etre capable de définir l'URL de base du fichier swf chargé.
2. * changement * toute l'URL de base de film lors de l'exécution car il a besoin de charger plusieurs outils à partir de différents dossiers.

Essayez de résoudre ce problème pendant plusieurs bonnes heures. L'aide sera très appréciée!

+0

Seulement quatre vues euh - tellement déprimant. Si vous aussi HATE Flash s'il vous plaît upvote (: – Poni

Répondre

2

Les chemins relatifs sont toujours relatifs à l'emplacement du fichier SWF principal. alors que votre chaîne de chargement se développe, '/' se réfère toujours à l'emplacement de Main.swf.

Dans AS2, vous pouvez inspecter une propriété swfs _url pour déterminer son emplacement d'URL complet et déterminer son dossier parent.

Chez l'enfant AS2 swf, vous pouvez utiliser ceci:

var myfolder = this._url.slice(0, this._url.lastIndexOf('/') + 1); 

puis l'utiliser pour charger dans d'autres actifs par rapport à lui-même.

espérons que cela aide.

+0

Merci d'avoir essayé au moins, et oui, c'est le plus proche peut obtenir avec Flash. – Poni