Un site Web sur lequel je travaille (utilisant AS2 parce qu'il s'agit d'oldschool) a un fichier .swf d'index plus grand qui charge des sous-swfs en utilisant loadMovie("foo1.swf", placeToShowSwf)
. Il y a foo1.swf
à 4, ce qui est stupide car la seule chose qui est différente entre eux est un seul numéro dans l'adresse d'un fichier xml qui lui indique le contenu à charger. Donc je veux réduire ceci à un fichier, avec une fonction simple que le fichier d'index appelle pour charger le fichier xml, comme vu ici.Chargement d'un fichier XML à l'extérieur du fichier swf dans Flash
function setFooNum(i:Number) {
fooNum = i;
//my_xml = new XML(); edit: this line has since been removed and is kept for historical purposes
my_xml.load("foo"+fooNum+".xml");
};
Toutefois, pour une raison quelconque, le fichier xml ne se chargera pas. Il charge correctement en dehors de la fonction, mais cela ne me fait pas beaucoup de bien. Il change fooNum correctement, mais cela ne me fait rien si le mauvais fichier xml est déjà en train de se charger. Pour autant que je sache, le code se comporte comme si le my_xml.load("foo"+fooNum+".xml")
n'était pas là du tout.
Est-ce une sorte de mesure de sécurité que je ne connais pas, et y a-t-il un moyen de contourner le problème?
EDIT Comme plusieurs personnes ont fait remarquer, la ligne my_xml = new XML()
était le coupable. Malheureusement, je reçois maintenant une nouvelle erreur passionnante. Lorsque setFooNum(i)
est appelé immédiatement après la loadMove()
dans le fichier d'index, un trace(fooNum)
à l'intérieur des que fooNum est correctement réglée fonction imprime setFooNum()
, mais trace(fooNum)
à l'intérieur du onLoad()
(qui retourne un succès en dépit rien chargement apparemment, btw) montre que fooNum est indéfini! En outre, j'ai fait un bouton dans l'index swf qui appelle setFooNum(3)
(à des fins de débogage), qui, pour une raison quelconque, le fait fonctionner correctement. Attendre quelques secondes pour que le fichier se charge semble résoudre le problème, mais c'est une solution incroyablement laide.
Alors, comment puis-je attendre que tout est complètement chargé avant d'appeler setFooNum()
?
Fournir toutes les sources que vous mentionnez dans votre édition, il est difficile d'aider sans elle. –
Pouvez-vous publier à quoi ressemble votre onLoad?fooNum n'est pas une variable globale donc à l'intérieur de votre fooNum onLoad ne sera pas reconnu. C'est un problème à portée variable. – milesmeow
Ceci doit être spécifique à AS2? – D3vtr0n