2010-10-11 7 views
1

Je voudrais savoir quel est le moyen le plus pratique d'intégrer de nombreuses images en utilisant ActionScript. Premièrement, je ne veux pas télécharger une image à chaque fois depuis le serveur, et ensuite, je voudrais changer le nombre d'images et/ou leurs noms. Que proposez-vous pour ces exigences? Ps: J'ai été averti pour la balise Embed, mais cela semble un peu gênant dans son utilisation car vous devez déclarer une nouvelle classe pour chaque asset et instancier la classe séparément.Comment intégrer un grand nombre d'images en utilisant Actionscript 3

Répondre

1

Met le problème ci-dessus, la solution que j'utilise est un peu simple, mais simple. Vous écrivez un fichier batch (.cmd) qui passe par un répertoire, générant le code as3, puis il exécute le compilateur pour créer .swf.

il ressemble à ceci:

set target=a.as 
@echo package { >%target% 
@echo import flash.display.Sprite; >>%target% 
@echo import flash.system.Security; >>%target% 
@echo public class %classname% extends Sprite{ >>%target% 
@echo  Security.allowDomain('*'); >>%target% 
for %%a in (*.png) do @echo   [Embed("%%~na.png")] public var %1_%%~na: Class; >>%target% 
@echo  } >>%target% 
@echo } >>%target% 

génère quelque chose comme:

package { 
import flash.display.Sprite; 
import flash.system.Security; 
public class extends Sprite{ 
Security.allowDomain('*'); 
     [Embed("a.png")] public var _beauty_nails: Class; 
     [Embed("b.png")] public var _club_dance: Class; 
     [Embed("c.png")] public var _club_date: Class; 
    } 
} 
0

Si vous souhaitez intégrer des images, vous devez utiliser la balise Embed et les fichiers image seront ajoutés au swf créé. Je ne comprends pas comment vous voulez incorporer des images mais les charger du serveur ou changer leurs noms? Une fois qu'ils sont intégrés, vous ne pouvez pas les renommer ou les décharger. Ils vont agir comme une variable statique codée en dur.

Si vous voulez passer les charger dynamiquement à partir du serveur alors que vous venez de l'URL de l'image à un mx: source d'image et là vous l'avez ...

+0

Désolé pour mon anglais qui font une confusion. Je fabrique un moteur qui produira à chaque fois un swf différent, selon certaines spécifications. Ce que je voulais dire, c'est que parfois je vais devoir supporter le moteur avec des graphismes différents. Je vais donc devoir modifier beaucoup le dossier qui contient les graphiques avant chaque nouveau bâtiment du swf. J'ai lu votre réponse à ce sujet: http://stackoverflow.com/questions/1053546/howto-embed-images-in-actionscript-3-flex-3-the-rightway mais je n'ai pas pu reproduire! Est-il possible pour vous de faire un exemple? Est-il également possible de me montrer la méthode fzip? –

+0

Plus précisément, je ne comprends pas ce que vous entendez par: myImage.source = Resource.SHIPS_1; par rapport à l'exemple qui est présenté dans le thread, et comment puis-je passer le zip de l'Embed qui est instancié par un MyZip: Class à un constructeur FZip? –

+0

Ensuite, j'ai peur que ce ne soit pas possible ... au moins je ne connais pas une méthode pour y parvenir. :(Pardon! –