sistema de menú+fNavTo          

Clasificado bajo: AS2 (deprecated) — drus @ 4:39 pm

Sistema de menú con submenus generados dinámicamente (hasta 2 niveles) que tira de pseudoxml. Toda la navegación se realiza a través de la función fNavTo.

Actionscript:
stop();
#include "lmc_tween.as"
secciones_xml = new XML("<secciones><seccion tit='Inicio'></seccion><seccion tit='Nokia E61'><item tit='Presentación'/><item tit='Ficha Técnica'/><item tit='Galería'/><item tit='Zoom'/></seccion><seccion tit='Real Mail Profesional'><item tit='Qué es'/><item tit='Consejos prácticos'/></seccion><seccion tit='Actívalo ahora'><item tit='Registro e instalación'/><item tit='Acceso al servicio'/></seccion></secciones>");
sec_ar = new Array("inicio", "nokiaE61", "realmail", "activalo");
fMenu = function () {
    for (var i = 0; i<secciones_xml.firstChild.childNodes.length; i++) {
        var submenu:MovieClip = holder_menu_mc.createEmptyMovieClip("submenu"+i, i);
        submenu._y = 16*i;
        submenu.miID = i;
        var btn_menu:MovieClip = submenu.attachMovie("btn_menu", "btn_menu", 0);
        btn_menu.txt.text = secciones_xml.firstChild.childNodes[i].attributes.tit;
        btn_menu.miID = i;
        btn_menu.miTipo = "m";
        btn_menu.onRelease =btn_menu.onReleaseOutside = fReleaseM;
        btn_menu.onRollOver = fRollOver;
        btn_menu.onRollOut = fRollOut;
    }
};
fRollOver = function () {
    if (this != selectedSMbtn && this != selectedMbtn) {
        this.colorTo(0x999999, .1,"linear");
    }
};
fRollOut = function () {
    if (this != selectedSMbtn && this != selectedMbtn) {
        this.colorTo(0x666666,1,"easeOutQuad");
    }
};
fSelectBtn = function (cual) {
    selectedSMbtn.colorTo(0x666666, .1, "easeInQuad");
    if (cual.miTipo=="m" && cual.miID != selectedMbtn.miID) {
        selectedMbtn.colorTo(0x666666, 1, "easeOutQuad");
    }
    selectedMbtn.enabled = true;
    selectedSMbtn.enabled = true;
    cual.enabled = false;
    cual.colorTo(0xFF0000, .1, "linear");
};
fReleaseM = function () {
    fSelectBtn(this);
    if (_root.secnow != undefined) {
        fCierraSM();
    }
    fAbreSM(this.miID);
    fNavTo(this.miID);
    selectedMbtn = this;
};
fReleaseSM = function () {
    fSelectBtn(this);
    fNavTo(this._parent.miID, this.miID);
    selectedSMbtn = this;
};
fNavTo = function (sec, subsec) {
    trace(sec_ar[sec]+"/"+subsec);
};
fAbreSM = function (cual) {
    var posy:Number = 0;
    for (var j = 0; j<secciones_xml.firstChild.childNodes[cual].childNodes.length; j++) {
        var btn_submenu:MovieClip = holder_menu_mc["submenu"+cual].attachMovie("btn_submenu", "btn_submenu"+j, j+1);
        btn_submenu.miTipo = "s";
        btn_submenu.miID = j;
        btn_submenu._y = 16*j+16;
        btn_submenu.txt.text = "> "+secciones_xml.firstChild.childNodes[cual].childNodes[j].attributes.tit;
        btn_submenu.onRelease =btn_submenu.onReleaseOutside = fReleaseSM;
        btn_submenu.onRollOver = fRollOver;
        btn_submenu.onRollOut = fRollOut;
    }
    for (var i = 0; i<secciones_xml.firstChild.childNodes.length; i++) {
        if (i>cual) {
            holder_menu_mc["submenu"+i]._y += j*16;
        }
    }
    _root.secnow = cual;
};
fCierraSM = function () {
    for (var j = 0; j<secciones_xml.firstChild.childNodes[_root.secnow].childNodes.length; j++) {
        var btn_submenu:MovieClip = holder_menu_mc["submenu"+_root.secnow]["btn_submenu"+Number(j)];
        btn_submenu.removeMovieClip();
    }
    for (var i = 0; i<secciones_xml.firstChild.childNodes.length; i++) {
        if (i>_root.secnow) {
            holder_menu_mc["submenu"+i]._y -= j*16;
        }
    }
};
fMenu();

Descarga menu.fla

Enlaces relacionados: scrollMovieClip, | Tags: , ,



Siguiente página »

AS_toolKit | Powered by WordPress | Skinned by Drus Unlimited | RSS Feed | Copyleft