Bonjour,
Comme le titre l'indique, je voudrais faire un carrousel flash qui tourne autour d'une image positionné au centre.
J'ai trouvé des sources pour le carrousel qui fait exactement ce que je veux (ou presque), en effet le carrousel en lui même c'est bon, le problème c'est plutôt mon image centrale qui est toujours en fond, je n'arrive pas à "l'incorporer" à l'intérieur du cercle : il faudrait que les images qui tournent passent derrière l'image centrale comme si elles tournaient autour d'un objet.
J'ai trouvé 2 codes que j'essaye de fusionner... sans résultat.
Quelqu'un aurait déjà rencontré ce genre de situation?
Merci de votre aide
code du carrousel (source : http://www.gotoandlearn.com/play?id=33) :
code de l'image qui tourne autour de l'autre :
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
48
49
50
51
52 import mx.utils.Delegate; var numOfItems:Number; var radiusX:Number = 300; var radiusY:Number = 60; var centerX:Number = Stage.width / 2.2; var centerY:Number = Stage.height / 2; var speed:Number = 0.1; var perspective:Number = 100; 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; } } 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; }
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
48
49
50
51
52
53
54
55
56
57 //créer un clip conteneur var mc:MovieClip = _root.createEmptyMovieClip("conteneur", 100); mc._x = 250; mc._y = 200; // y attacher le logo, les ptites étincelles et la planete mc.attachMovie("logo", "logo_inst", 5000); mc.attachMovie("etincelle", "etincelle", 500,{_x:-500,_y:-500}); mc.attachMovie("planete","planete_inst",200,{_x:40}); i = 1; mc.onEnterFrame = function() { if (i == 50) { i = 0; } //dupliquer les étincelles pour l'effet "trainée" var star:MovieClip = _root.conteneur.attachMovie("etincelle", "etincelle"+i, _root.NSD+i); //les faires suivre le logo star._x = _root.conteneur.logo_inst._x; star._y = _root.conteneur.logo_inst._y; star._xvitesse = Math.random()*15; star._yvitesse = Math.random()*4-3; star._alpha = 100; star.onEnterFrame = function() { this._yvitesse += 0.05; this._xvitesse = _xvitesse/1.5; this._x +=this._xvitesse; this._y += this._yvitesse; this._alpha -= 1; if (this._alpha<=50) { removeMovieClip(this); } }; i++; }; // fonction pour créer la trajectoire du logo var coef = 0; luneQuiTourne = function () { coef += 0.05; this._x = 40+Math.cos(coef)*230; this._y = 0+Math.sin(coef)*80; this._xscale =Math.sin(coef)*100; this._yscale =Math.sin(coef)*25+75; // là on change les profondeur du logo et des étincelles pour qu'ils aient //l'air de passer derrière la planète if (this._y<0) { conteneur.planete_inst.swapDepths(6000); conteneur.logo_inst.swapDepths(5000); _root.NSD=1; } else { conteneur.planete_inst.swapDepths(400); conteneur.logo_inst.swapDepths(5000); _root.NSD=7000; } }; conteneur.logo_inst.onEnterFrame = luneQuiTourne;
Partager