2012-07-12 2 views
0

L'application sur laquelle je travaille affiche quatre images aléatoires à un moment donné. Ces quatre images proviennent d'un ensemble de cinquante images. Si tel était un projet Flex standard, je viens de mettre la propriété img.source:Comment charger des éléments d'image dynamiques dans Adobe Air

this.img1.source ="../assets/img/"+randomname+".png";` 

Ce ne fonctionne pas bien, je reçois une image cassée. Une autre façon d'aller à ce sujet est de charger l'image avec un URLLoader, qui est pas non plus de charger l'image (sans surprise, étant donné que c'est un atout locale)

loader = new Loader(); 
var urlReq:URLRequest = new URLRequest("../assets/img/"+randomname+".png"); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
loader.load(urlReq) 

Donc, cela ne fonctionne pas non plus, je Je pense à charger toutes les images dans un swc, puis à lier le swc au projet. Ce n'est évidemment pas génial car alors tous les assets sont chargés en mémoire lors de l'exécution. Y a-t-il une autre façon de faire cela? J'espere qu'il me manque quelque chose de vraiment simple.

Si la solution .swc est la meilleure, quelqu'un peut-il me diriger dans la bonne direction? J'oublie comment fonctionne toute cette affaire, car cela fait quelques années que je travaille avec Flex/Flash.

Merci à l'avance

+0

Vous avez probablement l'URL incorrecte pour votre image. Où se trouve le dossier "assets" par rapport au dossier "src" de votre projet? – NoobsArePeople2

+0

Le dossier 'assets' est au même niveau que le dossier 'src'. J'ai essayé 'URLLoader' avec à la fois" ../assets/img "et" assets/img "comme début du chemin du fichier. Je reçois un 'Error # 2044: Non géré IOErrorEvent :. text = Erreur # 2035: Erreur de l'URL introuvable. » – cside23

+0

Exécutez-la à partir de Flash Builder? Le dossier assets est-il copié dans le dossier bin-debug? – NoobsArePeople2

Répondre

0

Vous pouvez essayer:

var urlReq:URLRequest = new URLRequest("assets/img/"+randomname+".png"); 
+0

Merci pour la réponse Michael. Malheureusement, cela ne semble pas fonctionner. Les dossiers 'assets' et 'src' sont au même niveau, et à la fois "assets/img" et "../assets/img" en tant que paramètres de 'URLRequest' donnent un' Error # 2044: Non géré IOErrorEvent :. text = Erreur # 2035: URL non trouvée. »erreur, c'est pourquoi je pensais que peut-être Air ne peut pas charger les fichiers locaux (directement, au moins). Des idées? – cside23

+0

Je peux obtenir le fichier, mais mon dossier d'actifs est sous le dossier src. Ou vous pouvez essayer de taper le chemin complet, par exemple. "c: /" + le chemin de votre projet + "/ assets/img /" + randomname + ". png". "le chemin vers votre projet" est quelque chose de similaire à "utilisateurs/nom d'utilisateur/Adobe Flash Builder 4.6/votre nom de projet" dans l'environnement de la fenêtre. – michael

1

vous devez ajouter vos répertoires d'actifs comme les répertoires "sources".

Ensuite, vous devez être conscient du fait que le contenu des répertoires d'actifs sera copié à la racine de votre application. Donc, quand vous avez l'image "assets/interface/bg.png" vous devez le charger en utilisant new URLRequest ("interface/bg.png"). `URLLoader` chargera un fichier du système de fichiers.