ciao a tutti ragazzi..ho un problema enorme che mi sta facendo girare la testa da un pò di giorni..ve lo scrivo; sto creando un sito in flash dove ci sono delle icone stile carousel che girano caricate tramite un xml esterno, e fin qui tutto ok..funziona benissimo..ad ogni icona, quando li si clicca sopra, questa si mette sul lato della schermata e viene caricato un swf esterno..all'inizio era un problema poichè non riuscivo a far caricare swf che avessero action script, per esempio una galleria di immagini ecc ecc poichè mi bloccava tutta l'esecuzione..poi però cercando in rete ho capito che andava messo il comando lockroot che penso come già saprete blocca un swf generale per passare a gli altri..e fin qui ora tutto ok..il problema mi sorge nel momento in cui io volessi caricare swf diversi per ogni icona..nel senso vorrei che ogni icona caricasse un swf diverso, e nn so come si fa poichè me li carica tutti insieme nello stesso contenitore e nn invece caricando solo quello che viene selezionato cliccando sull'icona e quindi che viene caricato tramite xml..premetto che ho creato un file contenitore di nome box dove vengono caricati gli swf..il codice della pagina è questo;verso la metà del testo trovate la funzione onreleased in cui ci sn caricati solo 2 swf, cioè menù e map.. vi prego aiutatemi,attendo una vostra risposta, ciao..
import mx.utils.Delegate;
import mx.transitions.Tween;
import mx.transitions.easing.*;
var numOfItems:Number;
var radiusX:Number = 130;
var radiusY:Number = 100;
var centerX:Number = Stage.width / 2;
var centerY:Number = Stage.height / 1.6;
var speed:Number = 0.05;
var perspective:Number = 50;
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()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sover");
sou.start();
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()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sdown");
sou.start();
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,tru e);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,tru e);
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,60,1,tr ue);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,60,1,tr ue);
var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,155,1,true);
var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,180,1,true);
var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true );
loadMovie("map/map.swf",_root.box);
_root.box_lockroot=true;
loadMovie("menù/~menù.swf",_root.box);
_root.box._lockroot=true;
var s:Object = this;
tw.onMotionStopped = function()
{
s.onRelease = unReleased;
}
}
}
}
function unReleased()
{
//BONUS Section
var sou:Sound = new Sound();
sou.attachSound("sdown");
sou.start();
unloadMovie(_root.box);
unloadMovie(_root.box);
delete this.onRelease;
var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,tr ue);
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,tr ue);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,tr ue);
var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
}
else
{
var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,60,t.theScale,1,t rue);
var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,60,t.theScale,1,t rue);
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)/25000;
}