Ciao a tutti...
Ho un menu in flash così composto: 5 fotografie ognuna delle quali si allarga con rollover sull'immagine e se clicco si apre la pagina relativa.
Vi posto il codice.as allegato al .fla
import mx.transitions.Tween;
import mx.transitions.easing.*;
function findMaxLevel(menu_no, mc_string):Number {
var maxDepth:Number = 5;
var clip:Number = 5;
var j:Number;
for (j=0; j<menu_no; j++) {
if (eval(mc_string+j).getDepth()>=maxDepth) {
maxDepth = eval(mc_string+j).getDepth();
clip = j;
}
}
return clip;
}
function setMenu(menu_no, menuStartX, widthOption, mc_string) {
var mcPaths = ["http://ffiles.com", "http://ffiles.com", "http://ffiles.com", "http://www.ioemestesso.it/ecommerce.html", "http://www.occhiocieco.com", "http://manimpastate.com"];
var j:Number;
for (j=0; j<menu_no; j++) {
var _mc:MovieClip = new MovieClip();
_mc = this[mc_string+j];
_mc.onRelease = function () {
getURL(mcPaths[j], "_parent");
};
_mc.onRollOver = function() {
var l:Number = this._name.lastIndexOf(mc_string.substr(mc_string. length-1,mc_string.length) );
var number:Number = Number(this._name.substr(l+1, 2));
var i:Number;
var tempMC:Number;
tempMC = findMaxLevel(menu_no, mc_string);
eval(mc_string+number).swapDepths(eval(mc_string+t empMC));
var tempWidth:Number = ((menu_no*widthOption)-200)/(menu_no-1);
var tempPosX:Number = menuStartX;
for (i=0; i<menu_no; i++) {
if (i != number) {
var tw:Tween = new Tween(eval(mc_string+i), "_width", Strong.easeOut, eval(mc_string+i)._width, tempWidth, 1, true);
var tw2:Tween = new Tween(eval(mc_string+i), "_x", Strong.easeOut, eval(mc_string+i)._x, tempPosX-(widthOption-tempWidth)/2, 1, true);
tempPosX += tempWidth;
} else {
var tw:Tween = new Tween(eval(mc_string+i), "_width", Strong.easeOut, eval(mc_string+i)._width, 200, 1, true);
var tw2:Tween = new Tween(eval(mc_string+i), "_x", Strong.easeOut, eval(mc_string+i)._x, tempPosX-(widthOption-200)/2, 1, true);
tempPosX += 200;
}
}
};
_mc.onRollOut = function() {
var l:Number = this._name.lastIndexOf(mc_string.substr(mc_string. length-1,mc_string.length) );
var number:Number = Number(this._name.substr(l+1, 2));
var i:Number;
for (i=0; i<menu_no; i++) {
var tw:Tween = new Tween(eval(mc_string+i), "_width", Strong.easeOut, eval(mc_string+i)._width, widthOption, 1, true);
var tw2:Tween = new Tween(eval(mc_string+i), "_x", Strong.easeOut, eval(mc_string+i)._x, menuStartX+i*widthOption, 1, true);
}
};
}
}
function createRectangle(x:Number, y:Number, width:Number, height:Number, color:Number, alpha:Number, number:Number, option_name:String, txtFormat:TextFormat, mc_string):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip(mc_string+number, this.getNextHighestDepth());
var mc_txt:TextField = mc.createTextField("menu_txt"+number, this.getNextHighestDepth(), -width/2+5, -height/2+5, width-10, height);
mc.beginFill(color);
mc.moveTo(-width/2, -height/2);
mc.lineTo(-width/2, -height/2);
mc.lineTo(width/2, -height/2);
mc.lineTo(width/2, height/2);
mc.lineTo(-width/2, height/2);
mc.endFill();
mc._x = x;//+width/2;
mc._y = y;//+height/2;
mc._alpha = alpha;
mc_txt.text = option_name;
mc_txt.selectable = false;
mc_txt.setTextFormat(txtFormat);
return mc;
}
function createMenu(numberOfOptions:Number, menuWidth:Number, menuHeight:Number, menuStartX:Number, menuStartY:Number, menuItems:Array, txtFormat:TextFormat, mc_string:String) {
var widthOption:Number = Math.floor(menuWidth/numberOfOptions);
var menuStartX:Number = menuStartX+widthOption/2;
var menu_no:Number = numberOfOptions;
var i:Number;
for (i=0; i<menu_no; i++) {
var color:Number = Math.random()*255*0xFF0000+Math.random()*255*0x00F F00+Math.random()*255*0x0000FF;
createRectangle(menuStartX+i*widthOption, menuStartY+menuHeight/2, widthOption, menuHeight, color, 100, i, menuItems[i], txtFormat, mc_string);
}
setMenu(menu_no, menuStartX, widthOption, mc_string);
}
Il problema di questo codice è che assegna a ciascuna delle 5 img lo stesso link e cioè l'ultimo. Inoltre se le immagini sono 5 e i link sono 6 funziona (ma sempre considerando l'ultimo link) se invece ne metto 5 così quante sono leimgs non funziona più nulla.
![]()
Grazie mille..
Ciao![]()