Salve a tutti!
Sto usando questa classe scritta tempo fa da Andr3a per la rotazione elissoide di movies con effetto prospettiva:
Come potete vedere prendo la classe e le do in ingresso un array di clips che creo dinamicamente in base a dei dati che tiro fuori da un database.codice:function ClipRotation(path) { function __firstClipPosition() { for(var a = 0, b = __clips.length; a < b; a++) __clips[a].scost = ((360 / b) / 2) + ((360 / b) * a); __manager(1); } function __manager(acceleration) { for(var a = 0, b = __clips.length, sin = 0; a < b; a++) { __clips[a].scost = __clips[a].scost + acceleration; sin = __m.sin(__clips[a].scost * __m.PI / 180); __clips[a].swapDepths(__m.sin(__clips[a].scost * __m.PI / 180) * 20); __clips[a]._x = (__m.cos(__clips[a].scost * __m.PI / 180) * __wx) + __cx; __clips[a]._y = (sin * __wy) + __cy; __clips[a]._xscale = __clips[a]._yscale = 100 - __minscale + __minscale * sin; } } function __loopManager() { //if(_xmouse > -192 && _xmouse < 245) //{ var acceleration = (__maxspeed * (path._xmouse - __cx)) / __wx; if(acceleration > __maxspeed) acceleration = __maxspeed; else if(acceleration < -__maxspeed) acceleration = -__maxspeed; __manager(acceleration); //} } this.setClips = function(clips) { __clips = clips; __firstClipPosition(); } this.setProperties = function(maxspeed, minscale, cx, cy, wx, wy) { __maxspeed = maxspeed, __minscale = minscale, __cx = cx, __cy = cy, __wx = wx, __wy = wy; } this.start = function() { if(__i > 0) clearInterval(__i); __i = setInterval(__loopManager, 15); } this.stop = function() { clearInterval(__i); __i = 0; } var __maxspeed = 5, __minscale = 40, __cx = 150, __cy = 50, __wx = 100, __wy = 30, __i = 0, __clips = [], __m = Math; } var CR = new ClipRotation(this); serie = new Array(); for(i=0;i<_global.n_porte;i++) { nmc.duplicateMovieClip("nmc"+i, i); this['nmc'+i].descrizione = _global['descrizione'+i]; this['nmc'+i].img.loadMovie(_global['img'+i]); this['nmc'+i].nome.text = _global['nome'+i]; serie[i] = this["nmc"+i]; } CR.setClips(serie); CR.setProperties(1, 30, 0, -50, 25*_global.n_porte, 80); CR.start(); nmc._visible = false; stop();
Il mio problema è che cambiando categoria di prodotti, cambia l'oggetto e quindi vorrei resettare e ricreare l'oggetto coi nuovi movies.
Al momento mando indietro di in frame, recupero i dati dal db e poi torno al codice ch evi ho postato sopra.
Il problema è che se i prodotti della prima categoria sono 9 (e va tutto abene) quando passo ad una categoria con 13 gli ultimi 4 (13 - 9) non seguono gli altri ma girano a casaccio.
Credo che il problema sia che l'oggetto non viene distrutto e ricreato ma solo aggiornato. Sapreste dirmi un modo per RESETTARE totalment el'oggetto (boh...magari un distruttore fatto bene).
Grazie
![]()

Rispondi quotando