naniekrea
Messages postés19Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention25 août 2009 21 nov. 2008 à 00:50
trouvé !!
Ecouteur.onLoadInit = function (cible){//trace("initialisé dans : "+cible);
precharge.init("clp_image");
Resize(11,11,cible,110);
contener._rotation+=20;
}
naniekrea
Messages postés19Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention25 août 2009 21 nov. 2008 à 00:28
Heu ... autre question : est-il possible de charger une image et de lui définir un angle (visualisation d'une image oblique)
je ne sais pas si cela est faisable.
merci
naniekrea
Messages postés19Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention25 août 2009 20 nov. 2008 à 23:20
Bonjour,
Ce script est nickel pour apprendre ... mais j'ai une petite question : est il possible de charger une image sans le btn "Chargement" ? heu ... je suis novice est j'essaie de comprendre.
Merci d'avance pour la réponse
Stéphanie
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 6 oct. 2006 à 11:41
Ton idée est en tout cas pas la bonne!!
Voilà une solution par exemple :
var cont:MovieClip = this.createEmptyMovieClip("conteneur", 1);
cont.loadMovie("test.jpg");
function reduire():Void{
cont._xscale cont._yscale cont._xscale*0.4;
}
this.id setInterval(this, "deplacer", 20, 1);
> Remplace le loadMovie par un MovieClipLoader et tu fais la reduction sur l'évènement onLoadInit et tu lances le déplacement sur le même évènement.
Tu colles ça dans un nouveau document flash, tu l'enregistres dans un dossier et dans ce même dossier, il faut juste que tu mettes une image "test.jpg" pour voir ce que ça donne.
@+! Samy
damingo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 octobre 2006 6 oct. 2006 à 10:53
Euh... Tu fais comment? :)
J'ai essayé pas mal de trucs du genre onEnterFrame qui marche nickel...mais sans le scale. Donc au final, ce que j'ai fais c de mettre une position _x et _y sur chaque frame. Ca fonctionne bien mais j'ai ete obligé deja de mettre mon animation en 120 fps pour que ce soit plus fluide. Le seul probleme est que ca sacade dans tous les cas (qd on fait du frame par frame, y parait que ca fait tjs ca).
Enfin voila! Je recommencerai pas mon animation car elle est trop avancée maintenant mais j'aimerai bien avoir une solution pour peut etre un futur projet. :)
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 6 oct. 2006 à 00:43
Damingo...pour faire un simple déplacement, tu aurais pu le coder en AS et tu aurais pu garder le scale du coup.
@+! Samy
damingo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 octobre 2006 5 oct. 2006 à 16:54
Bon, j'ai demande a un designer qui m'a repondu que le scale etait incompatible avec le motion tween.
J'ai du tout me tapper frame par frame mais au final ca fonctionne.
ciao :)
damingo
Messages postés3Date d'inscriptionjeudi 14 octobre 2004StatutMembreDernière intervention 6 octobre 2006 25 sept. 2006 à 14:51
Bonjour,
Pour ma part, cela m'a ete tres utile...
Par contre, j'ai un gros souci: une fois l'image redimensionnee, je n'arrive pas a la deplacer "en animation".
Par exemple, si l'image est en (0,0) a la frame 0 et que je cree une motion jusqu a la frame 10 en deplacant l'image en (100,100), l'image ne bougera pas du tout. Ca fonctionne uniquement si on supprime le scale. :s
Qqun aurait-il une idee?
:)
nicoptere
Messages postés41Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention30 mai 2006 6 févr. 2006 à 07:20
bonjour,
bavard et sans intérêt.
nico
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 8 déc. 2005 à 12:15
Déjà avant d'adapter à ton projet, il faut bien comprendre comment le code fonctionne c'est seulement une fois qu'on a bien compris le mécanisme qu'on pourra adapter à son code.
Pour ton cas, c'est certainement un problème de chemin de notation à point.
Tu n'est pas obligé d'utiliser le fichier AS, tu peux recopier la fonction dans le root de ton code et l'appelé par _root.ma fonction. Voilà sinon je ne vois pas comment t'aider plus dans l'immédiat.
Dslé mais je debute en AS et je n'arrive pas a utiliser ta fonction dans mon code.Le code posté plus haut est un fichier .as. au dessu il y a un constructeur et j'apel la classe dans mon fla. Vu le clip "diaporama" qui necessite une taille previsionellle des images pour les afficher, je ne voit pas ou/comment apppeler ta fonction... snif
threep21
Messages postés69Date d'inscriptionsamedi 27 décembre 2003StatutMembreDernière intervention29 décembre 2006 7 déc. 2005 à 22:57
nan mais moi je trouve que ça part d'un bon sentiment de faire ses "petits add-on" pour flash. Surtout que c'est bien pratique pour qui veux monter une gallerie. Au moins si ça ne fait pas office de source super top, il suffit pour qui cherche ce code de lire les commentaires et d'apprendre comment on fait.
A defaut d'être une bonne source, c'est un bon tutoriel ^^
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 7 déc. 2005 à 20:48
Merci ! c'est un peu plus honnête (lol) comme note.
C'est une petite source sans prétention qui permet de redimensionner une image avec centrage et dont le code est fonctionnel.
Maitenant on peut toujours optimiser c'est à libre de droits ;-))
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 7 déc. 2005 à 17:54
Pour ma part, ce sera 5/10...la moyenne, mais sans plus. Un MovieClipLoader utilisé tout seul ferait l'affaire.
@+! Samy
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 7 déc. 2005 à 17:22
Et bien cher Ami, il te suffit de regarder comment j'ai fait, mon code répond exactement à tes besoins. IL te suffira de faire une fonction qui récuère les noms d'images à charger depuis un XML par exemple, puis à l'aide d'un bouton tu passes en paramère le nom de l'image à ma fonction d'affichage qui va te positionner parfaitement ton image (quelque soit sa taille) dans un carré dont tu auras donné la position et la taille en pixels !
Je ne poste pas ici pour la note, mais je trouve quand même injuste d'avoir eu 1/10 alors que mon code avec sa fonction de centrage est pleinement fonctionnel (arfff)
Zallez ptetre pouvoir m'aider ... je fai un diaporama. jarrive a afficher les images plus ou moin kom jeveux les une a la suite des autres. Mais je n'arrive pas à implementer une fonctionnalité qui retaille en gardan les proportions. HELP ! voici tou le code
var largeur =100;
var hauteur = 100;
var espace =70;
//je sai c crade de definir hauteur largeur la ms g pa su faire autrement pour la barre diaporama...
this.createEmptyMovieClip("diaporama",10);
//l'ordonnée du clip "diaporama". Son abscisse sera définie plus loin par la position du curseur.
diaporama._y = 10;
var infoTof:XML=new XML(); //creer un objet XML
infoTof.ignoreWhite=true; //ignorer les sauts de ligne
infoTof.load("Tofs.xml");//loader le fichier
infoTof.onLoad=function(){
var chemin:String="/racine/photo/Chemin/*";
global.tofs_tab=mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin); //tableau de tous les chemins des tofs du noeud
for(var i:Number=0;i<_global.tofs_tab.length;i++){
trace(_global.tofs_tab[i]);
var mc = diaporama.createEmptyMovieClip("clip"+i, i);
//définissons les abscisses des clips "photo" contenus dans le clip diaporama
mc._x = espace + (largeur + espace)*i;
mc._y=300;
//nouveau clip vide qui s'appelle "conteneur (contient limage a charger)
mc.createEmptyMovieClip("conteneur",10);
mc.conteneur.loadMovie(_global.tofs_tab[i]);
mc.conteneur._xscale/=5;
mc.conteneur._yscale/=5;
cs_goldenboy68
Messages postés1596Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention 9 juin 20112 7 déc. 2005 à 08:22
Juste pour info:MovieClipLoader, c'est pas nouveau, ça existait déjà en MX2004.
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 6 déc. 2005 à 04:56
Pourrais-tu regarder ma mise à jour, car j'ai modifier mon code pour faire un centrage quelque soit la forme de l'image intégré. Si tu fait des essais avec les différentes images que je joins dans le zip cela va se comprendre tout de suite.
Maintenant si tu te sens l'envie d'optimiser mon code avec les fonction scale de flash, pourquoi pas. En fait j'ai écris ce code dans l'intention de positionner un centrage parfait.
Bien entendu comme je te disais, j'ai eu des problèmes d'écrasement avec ces fonction sous MX.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 5 déc. 2005 à 03:59
lol, je m'excuse si tu as pris ma motivation pour un peu d'agressivité, mais j'avoue que passer par Moscou pour faire Toulouse/Paris, c'est pas mon truc ...:p
L'important maintenant serait d'alléger ton Flash, car avec si peu de contenu, obtenir une taille de 27Ko en swf à cause de tout les composants qu'il contient c'est dommage, surtout qu'un peu de script te ferait tonber tout ça sous la barre des 5Ko.
Mais je vais pas jouer les chiants ;)
Peg'
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 5 déc. 2005 à 03:53
Bon alors on ne va pas se prendre la tête cher Ami !
Je viens de faire le test avec ta fonction et tu as raison !!
Je viens de créer 2 rectangles et un carré au format jpg avec une grille dedans.
Pas de déformation !!
Pour la version de flash 7 j'avais ce problème d'écrasement de l'image.
Il semble que sous flash 8 le fonction _x/y/scale ne déforme pas l'image.
Enfin il faudrait que je refasse des tests avec mes progs de la version 7 à la version 8 pour voir si la ça coince toujours.
Il est possible que le format de l'image puisse en être la cause (à tester donc).
Ton code est réellement optimisé du fait de l'utilisation des fonctiones _xscale et _yscale, chapeau bas PEGASE31 et surtout à cette heure de la nuit (lol)
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 5 déc. 2005 à 03:13
Je me suis permis de refaire ton resizer.as en plus simple et ça donne ça :
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 5 déc. 2005 à 02:57
j'ai essayé avant de te ballancer ce cote .. et avec un rectangle ou pas, ça passe!
Transforme le "_width" de ton clip et trace son "_xscale", tu verras que tu auras le % de "retaillage", comme tu dis.
A partir de là, tu pourras l'appliquer à ton "_yscale".
Je vais pas me planter sur un truc aussi basique, tout de même...
Peg'
Loubiou
Messages postés150Date d'inscriptionmercredi 26 juin 2002StatutMembreDernière intervention 5 décembre 2008 5 déc. 2005 à 02:36
Cher Amis, cette fonction à pour but de transformer la taille d'une image quelque soit sa forme.
Dans ton cas, pour un carré c'est le bon code, mais pour un rectangle en longueur ou en hauteur tu auras une déformation !!
Fait un petit essai avec ton code sur une image rectangulaire tu auras une surprise.
Je pense que je n'ai peut-être pas bien expliqué ou tu n'as peut-être pas tout lu en entier.
J'ai volontairement parlé de rectangle en longueur pour éviter d'écrire rectangle dont L>h afin que tout le monde puisse comprendre.
Moralité, il faut bien poser le problème avant d'appliquer une formule. J'en parlais à un Ami mathématicien il y a cinq minutes o tel (lol) qui me disait justement que la tarre des développeurs moderne, outre l'absence partielle ou totale de codes explicites, est qu'ils ne font jamais ou peu d'études ou d'algorithmes avant d'attaquer leur prog. Leurs petits doigts frénétiques subissant les démangeaisons impulsives causées par l'empressement d'aboutir avant d'avoir commencé (lol). Ce qui fait que beaucoup plus tard, personne ne peut exploiter le code avant de longues heures pour comprendre le cheminement du dev ou les subtilités du prog et ce, sourtout dans le cas d'un projet de grande taille, comprenant de nombreuses fonctions et unités. J'ai eu ce problème lol et je travaille à me corriger en documentant mes sources (sauf quand cela est explicite), en créant une étude en .doc.
Je gagne ainsi un temps fou pour adapter une de mes sources à une appli particulière.
Voilà pour la petite philosophie nocturne (mea culpa).
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 5 déc. 2005 à 02:09
Question conne : pourquoi ne pas avoir utilisée "_xscale" et "_yscale" plutôt qu'une règle de 3 appliquée au pixel ?
Tu veux une image de 500 pixels de large et qu'elle garde sa proportion ? Ben fais comme ça :
21 nov. 2008 à 00:50
Ecouteur.onLoadInit = function (cible){//trace("initialisé dans : "+cible);
precharge.init("clp_image");
Resize(11,11,cible,110);
contener._rotation+=20;
}
21 nov. 2008 à 00:28
je ne sais pas si cela est faisable.
merci
20 nov. 2008 à 23:20
Ce script est nickel pour apprendre ... mais j'ai une petite question : est il possible de charger une image sans le btn "Chargement" ? heu ... je suis novice est j'essaie de comprendre.
Merci d'avance pour la réponse
Stéphanie
6 oct. 2006 à 11:41
Voilà une solution par exemple :
var cont:MovieClip = this.createEmptyMovieClip("conteneur", 1);
cont.loadMovie("test.jpg");
function reduire():Void{
cont._xscale cont._yscale cont._xscale*0.4;
}
function deplacer(sens:Number):Void{
clearInterval(id);
this.cont._x += sens;
if(this.cont._x < 150 && sens > 0){
this.id = setInterval(this, "deplacer", 20, 1);
}else if(this.cont._x > 0 && sens < 0){
this.id = setInterval(this, "deplacer", 20, -1);
}else if(this.cont._x >= 150){
this.id = setInterval(this, "deplacer", 20, -1);
}else if(this.cont._x <= 0){
this.id = setInterval(this, "deplacer", 20, 1);
}
}
setTimeout(this, "reduire", 2000);
this.id setInterval(this, "deplacer", 20, 1);
> Remplace le loadMovie par un MovieClipLoader et tu fais la reduction sur l'évènement onLoadInit et tu lances le déplacement sur le même évènement.
Tu colles ça dans un nouveau document flash, tu l'enregistres dans un dossier et dans ce même dossier, il faut juste que tu mettes une image "test.jpg" pour voir ce que ça donne.
@+! Samy
6 oct. 2006 à 10:53
J'ai essayé pas mal de trucs du genre onEnterFrame qui marche nickel...mais sans le scale. Donc au final, ce que j'ai fais c de mettre une position _x et _y sur chaque frame. Ca fonctionne bien mais j'ai ete obligé deja de mettre mon animation en 120 fps pour que ce soit plus fluide. Le seul probleme est que ca sacade dans tous les cas (qd on fait du frame par frame, y parait que ca fait tjs ca).
Enfin voila! Je recommencerai pas mon animation car elle est trop avancée maintenant mais j'aimerai bien avoir une solution pour peut etre un futur projet. :)
6 oct. 2006 à 00:43
@+! Samy
5 oct. 2006 à 16:54
J'ai du tout me tapper frame par frame mais au final ca fonctionne.
ciao :)
25 sept. 2006 à 14:51
Pour ma part, cela m'a ete tres utile...
Par contre, j'ai un gros souci: une fois l'image redimensionnee, je n'arrive pas a la deplacer "en animation".
Par exemple, si l'image est en (0,0) a la frame 0 et que je cree une motion jusqu a la frame 10 en deplacant l'image en (100,100), l'image ne bougera pas du tout. Ca fonctionne uniquement si on supprime le scale. :s
Qqun aurait-il une idee?
:)
6 févr. 2006 à 07:20
bavard et sans intérêt.
nico
8 déc. 2005 à 12:15
Pour ton cas, c'est certainement un problème de chemin de notation à point.
Tu n'est pas obligé d'utiliser le fichier AS, tu peux recopier la fonction dans le root de ton code et l'appelé par _root.ma fonction. Voilà sinon je ne vois pas comment t'aider plus dans l'immédiat.
8 déc. 2005 à 11:43
7 déc. 2005 à 22:57
A defaut d'être une bonne source, c'est un bon tutoriel ^^
7 déc. 2005 à 20:48
C'est une petite source sans prétention qui permet de redimensionner une image avec centrage et dont le code est fonctionnel.
Maitenant on peut toujours optimiser c'est à libre de droits ;-))
7 déc. 2005 à 17:54
@+! Samy
7 déc. 2005 à 17:22
Je ne poste pas ici pour la note, mais je trouve quand même injuste d'avoir eu 1/10 alors que mon code avec sa fonction de centrage est pleinement fonctionnel (arfff)
Bonne prog ...
7 déc. 2005 à 16:59
var largeur =100;
var hauteur = 100;
var espace =70;
//je sai c crade de definir hauteur largeur la ms g pa su faire autrement pour la barre diaporama...
this.createEmptyMovieClip("diaporama",10);
//l'ordonnée du clip "diaporama". Son abscisse sera définie plus loin par la position du curseur.
diaporama._y = 10;
var infoTof:XML=new XML(); //creer un objet XML
infoTof.ignoreWhite=true; //ignorer les sauts de ligne
infoTof.load("Tofs.xml");//loader le fichier
infoTof.onLoad=function(){
var chemin:String="/racine/photo/Chemin/*";
global.tofs_tab=mx.xpath.XPathAPI.selectNodeList(this.firstChild,chemin); //tableau de tous les chemins des tofs du noeud
for(var i:Number=0;i<_global.tofs_tab.length;i++){
trace(_global.tofs_tab[i]);
var mc = diaporama.createEmptyMovieClip("clip"+i, i);
//définissons les abscisses des clips "photo" contenus dans le clip diaporama
mc._x = espace + (largeur + espace)*i;
mc._y=300;
//nouveau clip vide qui s'appelle "conteneur (contient limage a charger)
mc.createEmptyMovieClip("conteneur",10);
mc.conteneur.loadMovie(_global.tofs_tab[i]);
mc.conteneur._xscale/=5;
mc.conteneur._yscale/=5;
}//for
largeurTotale = _global.tofs_tab.length*(largeur + espace) + espace;
}//onLoad
onMouseMove = function() {
diaporama._x = (600 - largeurTotale)/600*_xmouse;
}
7 déc. 2005 à 08:22
6 déc. 2005 à 04:56
Maintenant si tu te sens l'envie d'optimiser mon code avec les fonction scale de flash, pourquoi pas. En fait j'ai écris ce code dans l'intention de positionner un centrage parfait.
Bien entendu comme je te disais, j'ai eu des problèmes d'écrasement avec ces fonction sous MX.
5 déc. 2005 à 03:59
L'important maintenant serait d'alléger ton Flash, car avec si peu de contenu, obtenir une taille de 27Ko en swf à cause de tout les composants qu'il contient c'est dommage, surtout qu'un peu de script te ferait tonber tout ça sous la barre des 5Ko.
Mais je vais pas jouer les chiants ;)
Peg'
5 déc. 2005 à 03:53
Je viens de faire le test avec ta fonction et tu as raison !!
Je viens de créer 2 rectangles et un carré au format jpg avec une grille dedans.
Pas de déformation !!
Pour la version de flash 7 j'avais ce problème d'écrasement de l'image.
Il semble que sous flash 8 le fonction _x/y/scale ne déforme pas l'image.
Enfin il faudrait que je refasse des tests avec mes progs de la version 7 à la version 8 pour voir si la ça coince toujours.
Il est possible que le format de l'image puisse en être la cause (à tester donc).
Ton code est réellement optimisé du fait de l'utilisation des fonctiones _xscale et _yscale, chapeau bas PEGASE31 et surtout à cette heure de la nuit (lol)
5 déc. 2005 à 03:13
Resize = function (posX, posY, clip, size) {
var Percent = (size/Math.max(clip._height, clip._width))*100;
clip._xscale clip._yscale Percent;
clip._x = posX;
clip._y = posY;
trace("L= "+ clip._width+" H= "+clip._height)
}
Voilà, rien de plus, et ça marche trés bien !
Peg'
5 déc. 2005 à 02:57
Transforme le "_width" de ton clip et trace son "_xscale", tu verras que tu auras le % de "retaillage", comme tu dis.
A partir de là, tu pourras l'appliquer à ton "_yscale".
Je vais pas me planter sur un truc aussi basique, tout de même...
Peg'
5 déc. 2005 à 02:36
Dans ton cas, pour un carré c'est le bon code, mais pour un rectangle en longueur ou en hauteur tu auras une déformation !!
Fait un petit essai avec ton code sur une image rectangulaire tu auras une surprise.
Je pense que je n'ai peut-être pas bien expliqué ou tu n'as peut-être pas tout lu en entier.
J'ai volontairement parlé de rectangle en longueur pour éviter d'écrire rectangle dont L>h afin que tout le monde puisse comprendre.
Moralité, il faut bien poser le problème avant d'appliquer une formule. J'en parlais à un Ami mathématicien il y a cinq minutes o tel (lol) qui me disait justement que la tarre des développeurs moderne, outre l'absence partielle ou totale de codes explicites, est qu'ils ne font jamais ou peu d'études ou d'algorithmes avant d'attaquer leur prog. Leurs petits doigts frénétiques subissant les démangeaisons impulsives causées par l'empressement d'aboutir avant d'avoir commencé (lol). Ce qui fait que beaucoup plus tard, personne ne peut exploiter le code avant de longues heures pour comprendre le cheminement du dev ou les subtilités du prog et ce, sourtout dans le cas d'un projet de grande taille, comprenant de nombreuses fonctions et unités. J'ai eu ce problème lol et je travaille à me corriger en documentant mes sources (sauf quand cela est explicite), en créant une étude en .doc.
Je gagne ainsi un temps fou pour adapter une de mes sources à une appli particulière.
Voilà pour la petite philosophie nocturne (mea culpa).
5 déc. 2005 à 02:09
Tu veux une image de 500 pixels de large et qu'elle garde sa proportion ? Ben fais comme ça :
MonClip._width = 500;
MonClip._yscale = MonClip._xscale;
Peg'