2008-10-13 9 views
0

J'ai un projet Flash que j'essaie d'exporter en tant que fichier SWF unique. Il y a un fichier SWF principal qui charge environ 6 autres fichiers SWF, et les fichiers SWF principal et enfant font référence à d'autres ressources externes (images, sons, etc.). Je voudrais emballer tout comme un seul fichier .swf afin que je n'aie pas à traîner les autres actifs avec le fichier .swf. Tout le codage est effectué dans le scénario, mais les actifs n'ont pas été importés dans l'environnement de création Flash et je n'ai pas le temps de le faire maintenant (il y a trop de références partout). J'espère qu'il y a juste une option qui me manque qui permet ce type d'export emballé, mais je n'ai rien trouvé de tel.Actionscript - combiner les ressources AS2 dans un seul fichier SWF

Je n'ai pas accès à Flex ou à mxmlc (et comme l'AS est basé sur la chronologie, il ne m'aidera pas forcément). Des pensées?

Merci! PS ... s'il n'y a pas moyen de faire exactement ce que je veux dire, je pourrais avoir tous les actifs dans un dossier "assets" ou quelque chose comme ça, donc je serais juste en train de faire le tour de main. swf et un dossier d'actifs. Le problème ici est que toutes les références aux assets supposent qu'ils sont dans le même dossier que le fichier main.swf, donc tout est supposé être local ... est-il possible de changer la portée de toutes les références externes dans Flash (Ainsi, par exemple, toutes les références locales dans le code sont réellement recherchées dans/assets)?

+0

eww ... codage sur la timeline? brûle-le avec le feu! – davr

Répondre

-1

HI Justin,

Il semble que vous devez regarder dans les bibliothèques partagées. Départ:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14767

+0

ne sont pas des fichiers externes des bibliothèques partagées à partir du fichier SWF principal? comme à l'opposé de tout combiner en un seul SWF? – davr

+0

Oui, c'est vrai. Les bibliothèques partagées n'aideraient pas ici. – fenomas

2

Vous pourriez être en mesure de décompiler vos fichiers SWF en XML avec swfmill/MTASC et utiliser un XSLT de fantaisie pour les recombiner et recompiler avec swfmill/MTASC.

Si cela ne fonctionne pas et si vous utilisez MovieClip.loadMovie ou MovieClipLoader.loadMovie vous pouvez surcharger leurs méthodes et intercepter l'url:

var realLoadMovie:Function = MovieClip.prototype.loadMovie; 

MovieClip.prototype.loadMovie = function(url:String, method:String) { 
    return realLoadMovie("assets/" + url, method); 
} 

var test:MovieClip = createEmptyMovieClip("testclip", getNextHighestDepth()); 
test.loadMovie("test.swf"); 

Vous aurez besoin de faire une analyse syntaxique de chaîne supplémentaire si les urls ont un préfixe de type de ressource tel que file: //

+0

+1 Je ne suis pas sûr si vous avez besoin du retour, cependant. –

+0

Mon erreur, le retour est inutile. – nikaji

0

Il y a un paramètre de base que vous pouvez ajouter lorsque vous intégrez le swf, comme align, scale, etc. Si base est défini, toutes les URLs relatives seront préfixé avec le chemin que vous définissez (enfin, presque tous, les vidéos et les objets de référence de fichier étant l'exception ici). À part ça, j'irais avec la solution de nikaji.

Questions connexes