Accueil > Forum > > > > aide sur caroussel et onRelease...
aide sur caroussel et onRelease...
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ée dans : var, number, parent, tooltip, home
Répondre à ce message
Sujets en rapport avec ce message
Probleme carroussel avec xml [ par BBFUNK01 ]
Salut à tous. Je suis en train de faire un carroussel en as2 dont les icônes sont gérées par un xml. Chaque icône du carroussel est cliquable et renv
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
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
Probleme de caracters speciaux dans flash [ par simojava ]
bonjour tout le monde,J'ai codé une classe en AS qui charge tous les caracteres speciaux et les affiche dans un MovieClip.Le probleme est que certains
Probleme d'affichage de certains cararcteres speciaux [ par simojava ]
<img style="BORDER-LEFT-COLOR: black; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; BORDER-RIGHT-COLOR: black; border-size: 1px" src="http://ww
Problème d'undefined [ par Reno007 ]
Bonjour à tous. Je désire pouvoir avoir accès au contenu de ma variable "contenuXMLFichier" en dehors de la fonction onLoad et j avais trouvé un cod
generer un movie clip à partir de plusieurs jpg [ par fixeurman ]
Bonjour , comment faire pour générer un mc à partir d' une liste de noms d'images ? (elles font toutes moins de 10ko) dois-je faire une boucle avec u
Je suis vraiment débutant [ par faldo1 ]
Coucou à tous,J'essaye d'utiliser ma première classe en Flash.J'ai donc une classe qui a le code suivant (je n'ai gardé que ce qui était nécessaire)==
tableau deux dimentions [ par georgeconst ]
salut a tous C'est la premiere fois que je participe a un forum alors si qqch cloche n'esitez pas a me le faire remarquer..j'ai un probleme avec actio
Problème de onPress dans une boucle [ par Reno007 ]
Bonjour à tous et toutes,Je débute en flash et j'ai un problème pour ma galerie de photos. J'affiche une photo et les miniatures.Le problème c'est que
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
SIMPLE CHARGEMENTSIMPLE CHARGEMENT par carton99
Cliquez pour lire la suite par carton99
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|