|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : aide sur caroussel et onRelease... [ Scripts / ActionScript ] (nicodogs)
Informations & options pour cette discussion
jeudi 16 novembre 2006 à 11:22:01 |
aide sur caroussel et onRelease...

nicodogs
|
Bonjour à tous, Je suis en train d'étudier comment focntionne un caroussel en flash (la source vient de là: [ Lien ]le truc, c'est que j'aimreais que lorsque j'appuie sur une icone, ce m'envoie sur une frame précise... Je galère un peu pour l'écriture du code en fonction onRelease, si quelqu'un peut me filler un coup de main, ca serait sympa!
voici le code principal: (sorry, j'ai pas trouvé de manière "propre" pour coller mon code)
stop(); import mx.utils.Delegate; var numOfItems:Number; var radiusX:Number = 300; var radiusY:Number = 75; var centerX:Number = Stage.width / 2; var centerY:Number = Stage.height / 2; var speed:Number = 0.05; var perspective:Number = 130; var home:MovieClip = this; var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000); tooltip._alpha = 0; var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = function() { var nodes = this.firstChild.childNodes; numOfItems = nodes.length; for(var i=0;i<numOfItems;i++) { var t = home.attachMovie("item","item"+i,i+1); t.angle = i * ((Math.PI*2)/numOfItems); t.onEnterFrame = mover; t.toolText = nodes[i].attributes.tooltip; t.icon.inner.loadMovie(nodes[i].attributes.image); t.r.inner.loadMovie(nodes[i].attributes.image); t.icon.onRollOver = over; t.icon.onRollOut = out; t.icon.onRelease = released; } } function over() { home.tooltip.tipText.text = this._parent.toolText; home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; home.tooltip.onEnterFrame = Delegate.create(this,moveTip); home.tooltip._alpha = 100; } function out() { delete home.tooltip.onEnterFrame; home.tooltip._alpha = 0; } function released() { //c'est ici que je ne sais pas comment formuler (par ex: si j'appuie sur l'icone1 , aller a la frame2) gotoAndStop(2); } function moveTip() { home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; } xml.load("icons.xml"); function mover() { this._x = Math.cos(this.angle) * radiusX + centerX; this._y = Math.sin(this.angle) * radiusY + centerY; var s = (this._y - perspective) /(centerY+radiusY-perspective); this._xscale = this._yscale = s*100; this.angle += this._parent.speed; this.swapDepths(Math.round(this._xscale) + 100); } this.onMouseMove = function() { speed = (this._xmouse-centerX)/2500; }
si vous avez une idée,merci d'avance! 
|
|
|
jeudi 16 novembre 2006 à 23:12:45 |
Re : aide sur caroussel et onRelease...

Girou
|
Réponse acceptée !
Bonsoir, ajout un numéro d'index a tes clips que tu peux récupérer dans ta fonction released et utiliser pour faire des if then stop(); import mx.utils.Delegate; var numOfItems:Number; var radiusX:Number = 300; var radiusY:Number = 75; var centerX:Number = Stage.width / 2; var centerY:Number = Stage.height / 2; var speed:Number = 0.05; var perspective:Number = 130; var home:MovieClip = this; var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000); tooltip._alpha = 0; var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = function() { var nodes = this.firstChild.childNodes; numOfItems = nodes.length; for(var i=0;i<numOfItems;i++) { var t = home.attachMovie("item","item"+i,i+1); t.angle = i * ((Math.PI*2)/numOfItems); t.numIndex=i
t.onEnterFrame = mover; t.toolText = nodes[i].attributes.tooltip; t.icon.inner.loadMovie(nodes[i].attributes.image); t.r.inner.loadMovie(nodes[i].attributes.image); t.icon.onRollOver = over; t.icon.onRollOut = out; t.icon.onRelease = released; } } function over() { home.tooltip.tipText.text = this._parent.toolText; home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; home.tooltip.onEnterFrame = Delegate.create(this,moveTip); home.tooltip._alpha = 100; } function out() { delete home.tooltip.onEnterFrame; home.tooltip._alpha = 0; } function released() { //c'est ici que je ne sais pas comment formuler (par ex: si j'appuie sur l'icone1 , aller a la frame2) trace("Icone "+this._parent.numIndex+" à été cliquée") // ensuite tu fais des comparaisons if( this._parent.numIndex==0){ gotoAndPlay(2)} if( this._parent.numIndex==1){ gotoAndPlay(20)} // voir aussi l'utilisation de switch case très utile si beaucoup de comparaisons
} function moveTip() { home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; } xml.load("icons.xml"); function mover() { this._x = Math.cos(this.angle) * radiusX + centerX; this._y = Math.sin(this.angle) * radiusY + centerY; var s = (this._y - perspective) /(centerY+radiusY-perspective); this._xscale = this._yscale = s*100; this.angle += this._parent.speed; this.swapDepths(Math.round(this._xscale) + 100); } this.onMouseMove = function() { speed = (this._xmouse-centerX)/2500; } @+ 
|
|
|
vendredi 17 novembre 2006 à 02:11:51 |
Re : aide sur caroussel et onRelease...

nicodogs
|
Exact, merci beaucoup! ca fonctionne parfaitement... je vais me documenter sur ce que tu appelles "switch", pour l'instant, je n'ai pas beaucoup de comparaisons, mais ca peut servir! merci encore! bonne soirée Girou! 
|
|
|
lundi 9 juin 2008 à 12:23:41 |
Re : aide sur caroussel et onRelease...

seth1
|
Bonjour à tous et à toutes ! désolé de déterrer ce vieux post... Je travaille actuellement (moi aussi !) sur cette source, mais sur la v3 (celle qui ouvre des menus de description) Cependant, je cherche a créer la même fonction que onRelease, mais automatiquement, toutes les 10 sec. par exemple, pour présenter les différentes icônes même s'il n'y a pas intervention de l'utilisateur. Mon problème est que je n'arrive pas à créer ce système d'automatisation de l'ouverture des descriptions. J'ai bien testé avec la fonction setIntervel(), mais bon... Voilà mon code source : import mx.utils.Delegate; import mx.transitions.Tween; import mx.transitions.easing.*;
var numOfItems:Number; var radiusX:Number = 130; var radiusY:Number = 20; var centerX:Number = Stage.width / 2; var centerY:Number = Stage.height / 2; var speed:Number = 0.05; var perspective:Number = 120; var home:MovieClip = this; theText._alpha = 0;
var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000); tooltip._alpha = 0;
var xml:XML = new XML(); xml.ignoreWhite = true;
xml.onLoad = function() { var nodes = this.firstChild.childNodes; numOfItems = nodes.length; for(var i=0;i<numOfItems;i++) { var t = home.attachMovie("item","item"+i,i+1); t.angle = i * ((Math.PI*2)/numOfItems); t.onEnterFrame = mover; t.toolText = nodes[i].attributes.tooltip; t.content = nodes[i].attributes.content; t.icon.inner.loadMovie(nodes[i].attributes.image); t.r.inner.loadMovie(nodes[i].attributes.image); t.icon.onRollOver = over; t.icon.onRollOut = out; t.icon.onRelease = released; } }
function over() { home.tooltip.tipText.text = this._parent.toolText; home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; home.tooltip.onEnterFrame = Delegate.create(this,moveTip); home.tooltip._alpha = 100; }
function out() { delete home.tooltip.onEnterFrame; home.tooltip._alpha = 0; }
function released() { home.tooltip._alpha = 0; for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; t.xPos = t._x; t.yPos = t._y; t.theScale = t._xscale; delete t.icon.onRollOver; delete t.icon.onRollOut; delete t.icon.onRelease; delete t.onEnterFrame; if(t != this._parent) { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true); var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true); } else { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,200,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,200,1,true); var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,50,1,true); var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,-10,1,true); var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true); theText.text = t.content; var s:Object = this; tw.onMotionStopped = function() { s.onRelease = unReleased; } } } }
function released2() // fonction avec laquelle je souhaite ouvrir automatiquement les pages de description { home.tooltip._alpha = 0; for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; t.xPos = t._x; t.yPos = t._y; t.theScale = t._xscale; delete t.icon; var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true); var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true); var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,200,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,200,1,true); var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,50,1,true); var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,-10,1,true); var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true); theText.text = t.content; var s:Object = this;
} }
setInterval(released2, 2000)
function unReleased() { delete this.onRelease; var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true); for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; if(t != this._parent) { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true); var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true); } else { var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,200,t.theScale,1,true); var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,200,t.theScale,1,true); var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true); var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true); tw.onMotionStopped = function() { for(var i=0;i<numOfItems;i++) { var t:MovieClip = home["item"+i]; t.icon.onRollOver = Delegate.create(t.icon,over); t.icon.onRollOut = Delegate.create(t.icon,out); t.icon.onRelease = Delegate.create(t.icon,released); t.onEnterFrame = mover; } } } } }
function moveTip() { home.tooltip._x = this._parent._x; home.tooltip._y = this._parent._y - this._parent._height/2; }
xml.load("icons.xml");
function mover() { this._x = Math.cos(this.angle) * radiusX + centerX; this._y = Math.sin(this.angle) * radiusY + centerY; var s = (this._y - perspective) /(centerY+radiusY-perspective); this._xscale = this._yscale = s*100; this.angle += this._parent.speed; this.swapDepths(Math.round(this._xscale) + 100); }
this.onMouseMove = function() { speed = (this._xmouse-centerX)/2500; }et mon XML : <icons>
<icon image="icon1.png" tooltip="pack1" content="blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla" />
<icon image="icon2.png" tooltip="pack2" content="blablablablablablablablablablablablablablablablablablablablablablablablablablablablablabl" />
<icon image="icon3.png" tooltip="pack3" content="blablablablablablablablablablablablablablablablablablablablablablablablablablablablabla" />
<icon image="icon4.png" tooltip="pack4" content="blablablablablablablablablablablablablablablablablablabla" />
<icon image="icon5.png" tooltip="pack5" content="blablablablablablablablablablablablablablablablablabl"/>
</icons>Merci d'avance, si vous voyez comment faire... 
|
|
|
jeudi 16 octobre 2008 à 19:31:24 |
Re : aide sur caroussel et onRelease...

MallaxOZ
|
Bonjour, moi j'ai un problème avec ce script. Tout se passe bien à part que les chiffres ne s'affichent pas quand j'en met dans le tooltip. Je ne vois aps qu'est-ce qu'il faudrait changer pour que ca marche. Si quelqu'un peut m'aider, j'en peux plus de relire le même morceau de code 
|
|
|
Cette discussion est classé dans : var, number, parent, tooltip, home
Répondre à ce message
Sujets en rapport avec ce message
repositionné movieclip [ par nicodogs ]
Bonjour à tous,Il y a quelques jours Girou m'avais donné un bon coup de main pour mon animation style "caroussel", l'anim marche très bien. Mais j'ai
Liens xml et carrousel Flash [ par lucile266 ]
Bonjour à tous,J'ai besoin d'un petit coup de main : Je n'arrive pas à mettre en relation mon fichier xml avec mon fichier flash dans le but de créer
Créer dans une boucle des clips enfants de clip - createEmptyMovieClip attachMovie [ par zootallures ]
Bonjour ,Je cherche à créer sous un MovieClip "contain" des occurences d'objets de ma bibliothèque ,le but est de pouvoir ensuite en supprimant le Mov
Source diaporama ne fonctionne pas [ par fredflash92 ]
Bonjour,j'utilise le script suivant (que j'ai pris sur ce site) qui gère un diaporama avec des fichiers images externes listés dans un fichier XMLen
fichier dynamique qui ne charge pas dans le fichier parent [ par LYDRI ]
Bonjour tout le monde !!!! J'ai vraiment besoin d'aide !!! Javascript:Insert_Emoticon('/imgs2/smile.gif'); Je suis en train de faire mon site perso,
Attacher plusieurs clips dans un même clip créé dans une classe [ par buzhug35 ]
Bonjour, Mon idée était de créer une horloge par le biais d'une classe UneHorloge à partir de 2 Clips de classes différentes : UnDisque et UneAiguille
Comment insérer plusieurs clips de classe dans un autre clip de classe [ par buzhug35 ]
Bonjour, Mon idée était de créer une horloge par le biais d'une classe UneHorloge à partir de 2 Clips de classes différentes : UnDisque et UneAiguill
Affichage dans boucle [ par CireEricCrie ]
Bonjour;Je suis débutant et je demande une solution au problème suivant:Je cherche a afficher, quand on appuie sur un bouton, une suite de nombres dan
Problème de variables qui ne changent pas d'état... [ par grover ]
Bonjour à tous de la part du nouveau noob de service : moi. <span
Aprentissage difficile des classes [ par szambaux ]
Bonjour je suis en train de me former au classe est j'ai vraiment du mal donc je poste ce que j'ai fait, c'est une classe récupere le nom d'un fichier
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Touch HD
Entre 25€ et 605€
|