Visualizzazione dei risultati da 1 a 4 su 4

Discussione: menu orizzontale

  1. #1

    menu orizzontale

    BUONA SERA A TUTTI...
    cercherò di eseere breve e conciso..

    ho scaricato un menu orizz. che carica delle icone che compaiono 3 alla volta tramite xml. Il mio problema è che tutte le icone mi eseguono la stessa funzione ; function noce() {
    loadMovie("prova.swf", "_root.cont");
    }

    Vorrei poter assegnare a ogni icona una funzione differente..
    sarà possibile?

    incollo il codice in questione
    ringrazio tutti anticipatamente

    stop();
    //
    Stage.scaleMode = "noScale";
    //
    var menuArray:Array = new Array();
    var settingsArray:Array = new Array();
    var myMenu:XML = new XML();
    myMenu.ignoreWhite = true;
    //
    myMenu.onLoad = function(sucess) {
    if (sucess) {
    rootNode = this.firstChild.childNodes;
    var totalMenu:Number = rootNode.length;

    //node 0 = add settings info into array
    s_showMax = rootNode[0].attributes.showMax;
    s_iconWidth = rootNode[0].attributes.iconWidth;
    s_totalWidth = rootNode[0].attributes.totalWidth;
    s_gap = rootNode[0].attributes.gap;
    s_sec = rootNode[0].attributes.sec;
    s_easeType = rootNode[0].attributes.easeType;
    settingsArray.push(s_showMax, s_totalWidth, s_gap, s_sec, s_iconWidth);
    //
    for (i = 1; i < totalMenu; i++) {
    //node >= 0 add menu info into array
    m_name = rootNode[i].attributes.name;
    m_src = rootNode[i].attributes.src;
    m_url = rootNode[i].attributes.url;
    m_type = rootNode[i].attributes.type;

    menuArray.push([m_name, m_src, m_url, m_type]);
    }
    //trace(menuArray[0]);
    gotoAndStop("done");
    }
    };
    myMenu.load("menu.xml");


    fotogramma "done":


    stop();
    //
    import mx.transitions.Tween;
    //
    var showMax:Number = int(settingsArray[0]);
    var totalItems:Number = menuArray.length;
    var menuWidth:Number = settingsArray[1];
    var gap:Number = int(settingsArray[2]);
    var mvSec:Number = int(settingsArray[3]);
    var mvEase:Object = mx.transitions.easing.Regular.easeInOut;
    var mwidth:Number = int(settingsArray[4]);
    var visItems:Array = new Array();
    var hol:MovieClip = this.createEmptyMovieClip("holder", this.getNextHighestDepth());
    //
    //define showmax items
    for (vi=0; vi<showMax; vi++) {
    visItems.push(vi);
    }
    //
    //attach items
    for (v=0; v<totalItems; v++) {
    var mc:MovieClip = hol.attachMovie("menu", "item"+v, hol.getNextHighestDepth());
    mc.txt.text = v;
    //
    //mc._x = mc._width*v;
    if (v<showMax) {
    mc._x = mwidth*v;
    } else {
    mc._x = gap+(mwidth*v);
    }
    mc.title = menuArray[v][0];
    mc.url = menuArray[v][2];
    mc.type = menuArray[v][3];
    mc.onRollOver = bOver;
    mc.onRollOut = bOut;


    mc.onRelease = function() {
    loadMovie("prova.swf", "_root.cont");

    }

    if (rootNode[i].attributes.name == "Shout") {


    mc.onRelease = function() {
    loadMovie("prova2.swf", "_root.cont");

    };
    }
    //
    mc.imgHol.loadMovie(menuArray[v][1]);
    mc.imgRef.loadMovie(menuArray[v][1]);
    //
    }
    //
    var fakeHolWidth:Number = mwidth*showMax;
    hol._x = menuWidth/2-fakeHolWidth/2;
    var stPtR:Number = fakeHolWidth+gap;
    var stPtL:Number = 0-gap-mwidth;
    ico2._x = stPtR;
    tip._alpha = 0;
    trace("hol x "+hol._x);
    //
    //define center, left and right army
    var cArmy:Array = new Array();
    var lArmy:Array = new Array();
    var rArmy:Array = new Array();
    var inc:Number = 0;
    for (v=0; v<totalItems; v++) {
    if (v>showMax-1) {
    lArmy[inc] = Math.ceil(stPtL-(mwidth*inc));
    inc++;
    }
    }
    lArmy.reverse();
    trace(lArmy);
    var inc:Number = 0;
    for (vi=0; vi<showMax; vi++) {
    cArmy[vi] = Math.ceil(mwidth*vi);
    }
    trace(cArmy);
    var inc:Number = 0;
    for (v=0; v<totalItems; v++) {
    if (v<totalItems-showMax) {
    rArmy[inc] = Math.ceil(stPtR+(mwidth*v));
    inc++;
    }
    }
    trace(rArmy);
    //ico1._x = lArmy[0];
    //ico2._x = rArmy[0];
    if (totalItems<showMax) {
    prev._alpha = next._alpha=70;
    prev.enabled = next.enabled=false;
    } else {
    prev._alpha = 70;
    prev.enabled = false;
    next._alpha = 100;
    next.enabled = true;
    }
    //when arrow is clicked
    updateVisArray = function (which) {
    //trace(visItems);
    if (totalItems>showMax) {
    if (which == "R") {
    //mv items 1st then update visItem array
    if (visItems[0] != 0) {
    moveItems(which);
    for (v=0; v<showMax; v++) {
    visItems[v]--;
    }
    trace(visItems);
    }
    if (visItems[0] == 0) {
    prev._alpha = 70;
    prev.gotoAndPlay("ot");
    prev.enabled = false;
    }
    next._alpha = 100;
    next.enabled = true;
    }
    if (which == "L") {
    //mv items 1st then update visItem array
    if (visItems[showMax-1] != totalItems-1) {
    moveItems(which);
    for (v=0; v<showMax; v++) {
    visItems[v]++;
    }
    trace(visItems);
    }
    if (visItems[showMax-1] == totalItems-1) {
    next._alpha = 70;
    next.gotoAndPlay("ot");
    next.enabled = false;
    }
    prev._alpha = 100;
    prev.enabled = true;
    }
    }
    };
    //
    //start moving items into place
    moveItems = function (which1) {
    if (which1 == "L") {
    //left mv
    for (i=0; i<visItems[0]; i++) {
    //trace("@ left items:__" + "item" + i + "__" + lArmy[i]);
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, lArmy[i], mvSec, true);
    }
    //center mv
    icc = 0;
    for (i=visItems[0]; i<visItems[showMax-1]+1; i++) {
    if (no1added == 1) {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, cArmy[icc], mvSec, true);
    //trace("center items:__" + "item" + i + "__" + cArmy[icc]);
    icc++;
    } else {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, lArmy[lArmy.length-1], mvSec, true);
    no1added = 1;
    //trace("center items:__" + "item" + i + "__" + lArmy[lArmy.length - 1]);
    }
    }
    delete no1added;
    //right mv
    icc = 0;
    for (i=visItems[showMax-1]+1; i<totalItems; i++) {
    if (no1added == 1) {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, rArmy[icc], mvSec, true);
    //trace("right items: " + "item" + i + "__" + rArmy[icc]);
    icc++;
    } else {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, cArmy[cArmy.length-1], mvSec, true);
    no1added = 1;
    //trace("right items: " + "item" + i + "__" + cArmy[cArmy.length - 1]);
    }
    }
    tip.stat.text = (totalItems-2)-(visItems[showMax-1])+" more";
    delete no1added;
    }
    if (which1 == "R") {
    //left mv
    icc = 0;
    for (i=0; i<visItems[0]; i++) {
    if (i != visItems[0]-1) {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, lArmy[lArmy.length-icc]._x+mwidth, mvSec, true);
    //
    icc++;
    //trace("left items: " + "item" + i + "__" + lArmy[lArmy.length - icc]);
    } else {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, cArmy[0], mvSec, true);
    no1added = 1;
    //trace("left items: " + "item" + i + "__" + cArmy[0] - 1);
    }
    }
    tip.stat.text = visItems[0]-1+" more";
    delete no1added;
    //center mv
    icc = 0;
    for (i=visItems[0]; i<visItems[showMax-1]+1; i++) {
    if (i<=visItems[showMax-1]-1) {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, cArmy[icc+1], mvSec, true);
    //trace("center items:__" + "item" + i + "__" + cArmy[icc + 1]);
    icc++;
    } else {
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, rArmy[0], mvSec, true);
    no1added = 1;
    //trace("center items:__" + "item" + i + "__" + rArmy[0]);
    }
    }
    delete no1added;
    //right mv
    inc = 0;
    for (i=visItems[showMax-1]+1; i<totalItems; i++) {
    //trace("$ right items:__" + "item" + i + "__" + rArmy[inc + 1]);
    var myTween:Tween = new Tween(hol["item"+i], "_x", mvEase, hol["item"+i]._x, rArmy[inc+1], mvSec, true);
    inc++;
    }
    }
    };
    prev.swapDepths(this.getNextHighestDepth());
    next.swapDepths(this.getNextHighestDepth());
    prev.onPress = function() {
    updateVisArray("R");
    };
    next.onPress = function() {
    updateVisArray("L");
    };
    prev.onRollOver = function() {
    st();
    tip.stat.text = visItems[0]+" more";
    this.gotoAndPlay("ov");
    };
    next.onRollOver = function() {
    st();
    tip.stat.text = (totalItems-1)-(visItems[showMax-1])+" more";
    this.gotoAndPlay("ov");
    };
    prev.onRollOut = next.onRollOut=function () {
    nost();
    tip.stat.text = "";
    this.gotoAndPlay("ot");
    };
    function bOver() {
    st();
    tip.stat.text = this.title;
    this.gotoAndPlay("in");
    }
    function bOut() {
    nost();
    tip.stat.text = "";
    this.gotoAndPlay("out");
    }
    function noce() {
    loadMovie("prova.swf", "_root.cont");
    }
    function mario() {
    loadMovie("prova2.swf", "_root.cont");
    }


    nost = function () {
    tip._alpha = 0;
    delete _root.onEnterFrame;
    };
    st = function () {
    tip.swapDepths(this.getNextHighestDepth());
    _root.onEnterFrame = function() {
    tip._alpha = 100;
    tip._x += (_xmouse-tip._x)/5;
    tip._y += (_ymouse-tip._y)/5;
    };
    };

  2. #2
    beh il cod è un pò lunghetto ma potresti mettere una serie di controlli

    mc.onRelease = function() {
    //qui fai i tuoi controlli ed effettui il caricamento del file esterno
    if (rootNode[i].attributes.name == "Shout") {
    loadMovie("prova.swf", "_root.cont");
    }
    }


    ovviamente ora ho scritto un cod cosi a caso ...dato che nn ho letto tutto il cod
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    28
    grazie MILLE !

    Con la condizione if per ogni "name" ho il controllo di "mc" e carico clip estene
    alla prossima

  4. #4
    di niente
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.