Forums Développement Multimédia

Aller au contenu

getDefinitionByName et Embed

CODE Actionscript

25 réponses à ce sujet

#1 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 17 December 2010 - 18:55 PM

Salut,

je voudrais appeler une image de ma bibliothèque avec un getDefinitionByName :

var img:Class = getDefinitionByName("BYP.jpg") as Class;
                        var image:MovieClip = new img ();
                        addChild (image);

mais mon swf me donne une page blanche, pourquoi mon image ne s'affiche-t-elle pas?

aussi, le getDefinitionByName me sert uniquement pour utiliser une image située dans la bibliothèque de mon fla?

Sinon, j'ai essayé avec la méthode "embed" (avec FDT, et mon image est dans le même dossier que ma classe ) :
[Embed(source="BYP.jpg")]
                        var Picture:Class;
                       
                        var pic:Bitmap = new Picture();
                        addChild (pic);
mais j'ai une erreur :

Citation

Error: Unable to transcode BYP.jpg.

Une idée? :smile:

Merci !

#2 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 17 December 2010 - 19:51 PM

Salut,

Si ton image est un bitmap tu dois faire comme ça


var monBitmap:Bitmap = new Bitmap();
var monImage:image = new image(0, 0) //image nom de la class dans la bibliotheque
monBitmap.bitmapData = monImage;
addChild(monBitmap);
 


#3 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 17 December 2010 - 20:04 PM

Et cette methode aussi ;)


var maClasse = Class(getDefinitionByName("image"));
var bmpd:BitmapData = new maClasse(0,0);
var monImage:Bitmap = new Bitmap(bmpd)
addChild(monImage);
 


#4 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 20:41 PM

Voir le messageDaveD, le 17 December 2010 - 20:04 PM, dit :

Et cette methode aussi ;)


var maClasse = Class(getDefinitionByName("image"));
var bmpd:BitmapData = new maClasse(0,0);
var monImage:Bitmap = new Bitmap(bmpd)
addChild(monImage);
 

pour une image [Embed(source="BYP.jpg")] ?
Ben non :) !!



package {
        import flash.display.Bitmap;
        import flash.display.Sprite;

        /**
         * @author goabonga
         */

        public class Test extends Sprite {
                [Embed(source="../bin/icon_16.png", mimeType="image/png")]
                private var iconClass : Class;

                public function Test() {
                        var bmp : Bitmap = new iconClass() as Bitmap;
                        addChild(bmp);
                }
        }
}
 




Essaye en spécifiant le mime type :)

Modifié par goabonga, 17 December 2010 - 20:41 PM.


#5 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 21:03 PM

Salut,

Voir le messagegoabonga, le 17 December 2010 - 20:41 PM, dit :

pour une image [Embed(source="BYP.jpg")] ?
Ben non :) !!
Si si on peut. :)

#6 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 17 December 2010 - 21:05 PM

;) ;)

#7 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 21:15 PM

Ouai ? mais daveD ? tu serais le faire toi ?
:) :) :) :) :) :) :)


pour mon exemple ce serais :

trace(getDefinitionByName('Test_iconClass'));
 

et dada ? qu'elle en serait l'utilité ?

#8 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 21:16 PM

Voir le messageMaitrePodo, le 17 December 2010 - 18:55 PM, dit :

var img:Class = getDefinitionByName("BYP.jpg") as Class;
                        var image:MovieClip = new img ();
                        addChild (image);

mais mon swf me donne une page blanche, pourquoi mon image ne s'affiche-t-elle pas?
Tu n'aurais pas une erreur à l'exécution par hazard ?
Tu parles d'une image et tu types en MovieClip... ^^

#9 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 17 December 2010 - 21:43 PM

vous devrez relire ca question et je pense avoir répondu au probleme de MaitrePodo

sinon maintenant encore une fois je m'excuse de vous avoir tous perturber

@+ ;)

Modifié par DaveD, 17 December 2010 - 21:46 PM.


#10 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 22:14 PM

:roll:
DaveD ?

Citation

Exception fault: ReferenceError: Error #1065: La variable image n'est pas définie.
atglobal/flash.utils::getDefinitionByName()
atTest()[C:\Documents and Settings\goabonga\Mes documents\workspace\mb.goabonga.net\src\Test.as:15]



package {
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Sprite;
        import flash.utils.getDefinitionByName;

        /**
         * @author goabonga
         */

        public class Test extends Sprite {
                [Embed(source="../bin/icon_16.png", mimeType="image/png")]
                private var image : Class;

                public function Test() {
                        var maClasse : Class = Class(getDefinitionByName("image"));
                        var bmpd : BitmapData = new maClasse(0, 0);
                        var monImage : Bitmap = new Bitmap(bmpd);
                        addChild(monImage);
                }
        }
}
 

j'ai une erreur quand je fais ce que tu dis :)

pour la deuxième méthode mon image n'est pas dans une bibliothèque :) ( je code plus sous flash depuis des années ... )

#11 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 22:20 PM

Voir le messagegoabonga, le 17 December 2010 - 21:15 PM, dit :

et dada ? qu'elle en serait l'utilité ?
L'utilité de faire un Embed ? :P

J'intervenais juste pour dire que le mimeType n'est pas nécessaire dans ce cas. ;)


Sinon, pour la question initiale il n'y a aucun intérêt à utiliser getDefinitionByName (il n'y a qu'une image), et MaitrePodo parle de bibliothèque donc il utilise Flash.
Du coup la 1° réponse de Dave est la plus adaptée. :)

#12 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 17 December 2010 - 22:38 PM

Salut,
merci de vos réponses! ;)

alors ça marche parfaitement avec le embed, j'avais placé mon image à côté du fla, alors que tel que j'avais écrit le embed elle devait être à côté de la classe! donc plus de problème, de même avec le mimeType (mais l'image doit être "jpeg" au lieu de mon ancien "jpg" ! ) ;)

sinon j'ai essayé avec le getDefinitionByName avec le Bitmap et ses width et height ("300" pour chaque) :
var maClasse = Class(getDefinitionByName("image"));
var bmpd:BitmapData = new maClasse(300,300);
var monImage:Bitmap = new Bitmap(bmpd)
addChild(monImage);

mais ma page reste blanche...

sinon, petit truc avec FDT : je ne vois pas le résultat de mon trace? je n'ai pas d'erreur non plus, mais si je met uniquement le trace, je ne vois pas ou il apparaît dans FDT? :?

Voilà, merci encore ! :mrgreen: :smile:

edit: alors au fait, le getDefinitionByName sert pour une image dans la bibliothèque de flash? ou peut-elle chercher une image à côté de la classe dans le package?
Merci ;)

Modifié par MaitrePodo, 17 December 2010 - 22:43 PM.


#13 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 23:03 PM

Donc pour reprendre !
1) inutile d'utilisé un getDefinitionByName pour une image de la bibliothèque.
2) une image embed n'est pas dans la bibliothèque et il faut l’appeler comme je le montre dans l'exemple ! ( inutile encore une fois d’appeler getDefinitionByName.
3) dans Fdt lors du debugage classique utilise l'activeX du Flash Player Debuger ( celui d'internet explorer, donc vérifie que t'as bien le debuger pour IE ) et apres t'auras les traces dans la fenêtre Console .

Pour le mime type je suis sure qu'il est inutile :) je ne l'utilise jamais pour des images!

( Par contre la première réponse de DaveD répond bien a la première question mais nullement a la deuxième ! )

#14 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 23:30 PM

Voir le messagegoabonga, le 17 December 2010 - 23:03 PM, dit :

3) dans Fdt lors du debugage classique utilise l'activeX du Flash Player Debuger ( celui d'internet explorer, donc vérifie que t'as bien le debuger pour IE ) et apres t'auras les traces dans la fenêtre Console .
Goa, pourquoi IE ?? Berk ! :D
Ça marche aussi bien avec le plugin ou avec le player standalone. :P

Citation

edit: alors au fait, le getDefinitionByName sert pour une image dans la bibliothèque de flash? ou peut-elle chercher une image à côté de la classe dans le package
http://help.adobe.co...finitionByName()
Renvoie une référence vers un objet de classe à partir de son nom.

#15 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 17 December 2010 - 23:32 PM

alors comment peut-on afficher une image avec le getDefinitionByName? j'ai ça, avec l'image dans la bibliothèque, ou également dans le dossier à côté de la classe :
var maClasse:Class = Class(getDefinitionByName("BYP.jpg"));
                        var bmpd:BitmapData = new maClasse(300,300);
                        var monImage:Bitmap = new Bitmap(bmpd);
                        addChild(monImage);

sinon je suis sur Mac et j'utilise Safari, ou Firefox, pour le debugger, y a-t-il une solution pour le trace sur mac?

edit : ah bah Dada m'a devancé ;) ok alors je vais chercher du côté de ce player ;)

Modifié par MaitrePodo, 17 December 2010 - 23:33 PM.


#16 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 23:35 PM

Voir le messageMaitrePodo, le 17 December 2010 - 23:32 PM, dit :

alors comment peut-on afficher une image avec le getDefinitionByName? j'ai ça, avec l'image dans la bibliothèque, ou également dans le dossier à côté de la classe :
var maClasse:Class = Class(getDefinitionByName("BYP.jpg"));
                        var bmpd:BitmapData = new maClasse(300,300);
                        var monImage:Bitmap = new Bitmap(bmpd);
                        addChild(monImage);

sinon je suis sur Mac et j'utilise Safari, ou Firefox, pour le debugger, y a-t-il une solution pour le trace sur mac?

edit : ah bah Dada m'a devancé ;) ok alors je vais chercher du côté de ce player ;)
Tu devrais relire les posts depuis le début, tu n'as pas besoin de getDefinitionByName, et il te faut le Flash Player debug pour avoir les trace.
http://www.adobe.com.../downloads.html
Ça marche sur Linux avec le navigateur ou le player standalone (même sur un OS 64 bits avec chroot 32 bits -le FP 64 debug pour Linux n'existe pas-), alors ça marche forcément partout. :P


EDIT : Ha bah, tu m'as redevancé dans mon avance.

#17 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 23:38 PM

ouai mais par défaut sur win la fenêtre qui s'ouvre (je supose que tu parle du plugin) utilise l’activeX , aussi cette petite fenêtre permet de debuger les accès au Location de javascript ..., ce que l'on ne peut pas faire avec le player standalone ( pourquoi chez powerFlash il n'ont pas inclus webkit ?? ) :)

Pour utiliser le standalone il faut ajouter le chemin de ce dernier dans :
Window->Preference->fdt->tools->Flash->FlashPlayer !

#18 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 23:39 PM

Je n'ai pas vu IE depuis bien longtemps, j'ai perdu quelques cheveux poils (de chat) en lisant ton post. ;)

#19 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 17 December 2010 - 23:46 PM

ok ok parfait ;) j'avais bien compris pour le embed, je voulais connaître la méthode avec le getDefinitionByName également :P

l'image devrait s'afficher? ou ce n'est pas un "objet de classe"? je ne sais pas trop à quoi ça correspond.

Sinon merci pour le reste, je vais aller voir le player ;)

#20 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 17 December 2010 - 23:47 PM

Ha, tu parlais du player qui s'appelle genre "internal player" (pas sûr du nom) ? Au temps pour moi.
Comme j'ai quasiment utilisé FDT que sur Linux, je ne l'ai jamais vu marcher. :)

#21 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 17 December 2010 - 23:51 PM

Pour te rassurer je ne l'ouvre pas souvent :) pour mon usage quotidien, mais il est quand même important de vérifier ce que l'on produit, y'a encore du monde qui l'utilise en France, et quand t'a des vrais projets t'es souvent obligé de pensé à eux !

Edit : oui ExternalSWFViewer

Modifié par goabonga, 17 December 2010 - 23:52 PM.


#22 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 18 December 2010 - 00:06 AM

Voir le messagegoabonga, le 17 December 2010 - 23:51 PM, dit :

mais il est quand même important de vérifier ce que l'on produit
Oui c'est sûr.

Pour ma part, j'ai le confort de ne faire que du Flash (Flex aussi mais c'est fini maintenant), et donc ne pas avoir à me soucier du navigateur. :)

#23 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 18 December 2010 - 00:06 AM

ouai en effet ça marche bien !

merci à vous ;)

#24 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 18 December 2010 - 07:13 AM

Voir le messageMaitrePodo, le 17 December 2010 - 22:38 PM, dit :

Salut,
merci de vos réponses! ;)

alors ça marche parfaitement avec le embed, j'avais placé mon image à côté du fla, alors que tel que j'avais écrit le embed elle devait être à côté de la classe! donc plus de problème, de même avec le mimeType (mais l'image doit être "jpeg" au lieu de mon ancien "jpg" ! ) ;)

sinon j'ai essayé avec le getDefinitionByName avec le Bitmap et ses width et height ("300" pour chaque) :
var maClasse = Class(getDefinitionByName("image"));
var bmpd:BitmapData = new maClasse(300,300);
var monImage:Bitmap = new Bitmap(bmpd)
addChild(monImage);

mais ma page reste blanche...

sinon, petit truc avec FDT : je ne vois pas le résultat de mon trace? je n'ai pas d'erreur non plus, mais si je met uniquement le trace, je ne vois pas ou il apparaît dans FDT? :?

Voilà, merci encore ! :mrgreen: :smile:

edit: alors au fait, le getDefinitionByName sert pour une image dans la bibliothèque de flash? ou peut-elle chercher une image à côté de la classe dans le package?
Merci ;)


Je sais pas ce que tu as du faire mais ça fonctionne bien :(
en plus les 300 ne sont pas obligatoires :)
voici le fla

Fichier(s) joint(s)

  • Fichier joint  image.fla   29.5 Ko   8 téléchargement(s)

Modifié par DaveD, 18 December 2010 - 07:14 AM.


#25 MaitrePodo

  • Members
  • PipPipPipPipPipPipPipPip
  • 573 messages

Posté 18 December 2010 - 16:22 PM

Salut DaveD,
merci, en fait ça marche bien dans le fla, si je le fais comme dans ton exemple, mais depuis FDT il m'affichait pas l'image. Donc j'en ai conclus : je fais l'embed depuis fdt et le getChildbyname pour une image de la bibliothèque depuis le fla.

a+ ;)

#26 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 18 December 2010 - 18:35 PM

si j'ai bien compris c'est bien ce que tu voulais là ça me rassure ;)

bonne soirée



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)