IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Chargement d'une image à partir d'un swf


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Par défaut Chargement d'une image à partir d'un swf
    Bonjour,

    Je débute en AS3 et je dois créer une sorte d'AssetManager pour gérer le loading de différents asset (swf, image, sound, movieclip, xml etc..).

    Je dispose d'un fichier .swf qui contient une image. J'ai créé ce .swf à partir de mon fichier .fla où dedans j'ai spécifié dans les propriétés de mon image:
    classe de base : flash.display.BitmapData
    (Pour information j'utilise flash professional CS5 pour la création de mon swf)

    Lorsque je charge le .swf et que je veux accèder aux données de mon image, je suis censé recevoir un objet de type BitmapData.
    Cependant, ce que j'obtiens n'est pas un BitmapData mais un MovieClip.

    Je voulais savoir si c'était normal que je récupère un MovieClip? Ou alors est-ce que j'ai fait une erreur lors de la création de mon swf?

    Voici le code qui traite les données extrait de mon .swf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    override public function onComplete(data:*):void
    		{
    			if(data != null)
    			{
    				// Lorsque je récupère les données, directement, via une image.
    				if(data is Bitmap)
    				{
    					original = data;
    					super.onComplete(original);
    				}
    				else if(data is BitmapData)
    				{
    					original = new Bitmap(data);
    					super.onComplete(original);
    				}
    				// Lorsque je récupère les données via un .swf
    				else if(data is Loader)
    				{
    					var ad:ApplicationDomain = data.contentLoaderInfo.applicationDomain;
    					if(ad != null)
    					{
    						if (ad.hasDefinition(uri.getPost()))
    						{
    							// Je suis censé rentrer ici...
    							if( data.content is BitmapData)
    								original = new (ad.getDefinition(uri.getPost()) as Class) as BitmapData;
    							// Je vois pas pourquoi je récupère un MovieClip ici....
    							else if( data.content is MovieClip)
    							{
    								original = new (ad.getDefinition(uri.getPost()) as Class) as MovieClip;
    							}
     
    							if(original == null) {
    								onFailed("This symbol: "+uri.getPost()+" doesn't exists in: "+uri.getPre());
    								return;
    							}
    							super.onComplete(original);
    						}
    						else onFailed("This symbol: "+uri.getPost()+" doesn't exists in: "+uri.getPre());
    					}
    					else onFailed("The ApplicationDomain of the asset: " + getUri() + " is null");
    				}
    				else onFailed("The data of the asset: " + getUri() + " are not a Bitmap's data or a Loader's data.");
    			}
    			else onFailed("The data of the asset: "+ getUri() + " are null.");
    		}

  2. #2
    Membre confirmé Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Par défaut
    Si tu crée ton swf via flash tu peux accéder au image/bouton/truc via leur nom d’occurrence.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Par défaut
    Le problème c'est que là mon swf je l'ai créé pour effectuer des tests.

    A la base mon application devra pouvoir charger n'importe quel swf quelques soit le symbole dedans.
    Je peux donc pas utiliser le nom de l'occurrence directement puisque je suis pas supposer le connaitre à ce moment là

  4. #4
    Membre confirmé Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Par défaut
    Mmhhh.

    Je ne suis pas chez moi donc je peu pas test, mais je pense que tu peu utiliser le movieClip, soit pour afficher directement ton image, soit pour dessiner un bitmapData avec draw();

    ++

  5. #5
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Par défaut
    Hmm, je vais essayer de dessiner un bitmapdata avec un draw et on verra bien.

    En tout cas merci pour ton aide

  6. #6
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Par défaut
    Bon ben j'ai résolu mon problème, merci pour ton aide

    En fait, je viens de voir que lorsqu'on charge un swf, on récupère comme type de donnée un MovieClip même si dedans on à une image/son/vidéo.

    Sauf qu'on peut très bien le caster dans le type du format qui se trouve à l'intérieur du swf.
    Dans mon cas, je pouvais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(data.content is MovieClip)
    	var bmd:BitmapData = new (ad.getDefinition(uri.getPost()) as Class) as BitmapData;
    Mon erreur était que je pensais que je devais absolument récupérer les types de données qu'il y avait dans mon swf... Ce qui est stupide puisqu'on peut avoir plusieurs type de données différentes dans un swf ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement d'une image à partir d'une vidéo
    Par DAUDET78 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 20/04/2012, 19h41
  2. chargement d'une image à partir de la BD
    Par bambino11 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 07/01/2009, 09h25
  3. Réponses: 2
    Dernier message: 06/02/2006, 09h12
  4. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 10h55
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo