Avatar billede eltempogigante Nybegynder
21. august 2007 - 01:24 Der er 7 kommentarer

Menu hvor knapperne "husker" at de er blevet trykket på?

Jeg har en menu med nogle roll-overs så et punkt lyser op. Jeg vil så gerne have at punktet forbliver lyst op hvis man kliker på det og efterfølgende laver en roll-out'er.

Jeg vil helst ikke ud i noget deaktivering af punktet/knappen-pjat, den skal virke hele tiden.

jeg går ud fra man skal definere en varibel som ligesom "ved"/ holder styr på hvilket element der er klikket, mens så synes jeg at komme ud i nogle "scope-problemer, altså at variblen kun gælder for "onrelease"-funktionen og ikke roll-over/roll-out-funktionerne.
Avatar billede mat Nybegynder
21. august 2007 - 07:23 #1
Hvordan ser dit script ud?

mvh mat
Avatar billede eltempogigante Nybegynder
21. august 2007 - 10:48 #2
Jeg bruger desuden: http://hosted.zeh.com.br/mctween/

// ANIMATION ENGINE - - - - - - - - - -
#include "mc_tween2.as"

//MENU STUFF - - - - - - - - - -

mMenu.front.text = "FORSIDE";
mMenu.pro.text = "PRODUKTIONER";
mMenu.com.text = "FIRMA";
mMenu.con.text = "KONTAKT";



//MENU SECTION SHIFT

contentShift(mMenu.sNews,"temp.swf");

contentShift(mMenu.sFactual,"portfolio.swf");


function contentShift(a:Object, b:String, c:Number):Void {



    a.onRelease = function() {
        box.alphaTo(0,0.5,"linear",0);

        loading.bar._width = 0;

        loading.percentTxt.text = "HENTER... "+"0 %";

        loading._visible = true;


        loading.alphaTo(100,0.5,"linear",0);
        loading.ySlideTo(Math.round((Stage.height-38)/2),0.5,"easeOutExpo",0,function () {
        mcL.loadClip(b,"box");
        });


    };

}




//MENU ON/OFF






mOnOff(mMenu.sIntro,"INTRODUKTION");
mOnOff(mMenu.sNews,"NYHEDER");

mOnOff(mMenu.sFactual,"FAKTA");
mOnOff(mMenu.sFictional,"FIKTION");

mOnOff(mMenu.sServices,"KOMPETENCER");
mOnOff(mMenu.sProfile,"PROFIL");
//mOnOff(mMenu.sPeople, "FOLK");

mOnOff(mMenu.sAdress,"ADRESSE & TLF.");
mOnOff(mMenu.sEmail,"MAIL & BESKED");


function mOnOff(a:Object, b:String, samba:Number):Void {

    a.submenu.text = b;
    a.sBlack._alpha = 0

    a.onRollOver = function() {
        //a.submenu.colorTo(0xFFFF00, 0, "linear");
        a.sBlack.alphaTo(100,0,"linear");
        //black.xSlideTo(a._x, 0.25, "easeOutExpo");
        //black.ySlideTo(a._y, 0.25, "easeOutExpo");
        //showTip(b);
    };
   
    a.onRollOut = a.onDragOut=function (samba:Number) {
       
        if(samba = c){}
       
        trace(samba)

       
        //a.submenu.colorTo(0xFFFFFF, 0.25, "linear");
        a.sBlack.alphaTo(0,0.25,"linear");
        //a.xSlideTo(0, 0.5, "easeOutExpo");
        //hideTip();
    };
}
Avatar billede mat Nybegynder
21. august 2007 - 13:48 #3
Oki og det du vil er at, fjerne a.onRollOut definitionen og istedet kalde den på det forrige movieclip der var valgt?

Og du har scope problemer med at sætte en variabel der holder på det sidst klikkede movieclip, og kalde alphaTo på denne?

mvh mat
Avatar billede eltempogigante Nybegynder
21. august 2007 - 16:57 #4
Hej nu har jeg lavet hele sitet om til Action Script 3, da det jo skulle være mere smart:

mMenu.sNews.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);

function mouseOverHandler(event:MouseEvent):void {
   
    trace("YES")
    Tweener.addTween(mMenu.sIntro, {alpha:1.0, time:0.0, transition:"linear"});
}


mMenu.sNews.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);

function mouseOutHandler(event:MouseEvent):void {
   
    trace("NO")
    Tweener.addTween(mMenu.sIntro, {alpha:0.0, time:0.5, transition:"linear"});
}

Men det virker helt mærkeligt.
Avatar billede mat Nybegynder
22. august 2007 - 08:13 #5
Der er vel også kun defineret en rollOver og en rollOut handler?

Du skal sætte en variabel til at pege på den sidst trykke knap og spørge i rollOut handleren om den pågældende knap er den der er sidst trykket på. Hvis den er det, så afspiller man ikke rollOver animationen.

mvh mat
Avatar billede eltempogigante Nybegynder
22. august 2007 - 18:09 #6
Ok så har jeg en løsning, men min markerings dims virker ikke, fordi roll-overs'ne blander sig i hinanden, hvordan undgår man det?

Webeksempel link: http://www.chainreact.dk/test/test2.swf

Kildefiler link: http://www.chainreact.dk/test/test2.zip

Kode:

stop()

// ANIMATION ENGINE - - - - - - - - - -
import caurina.transitions.Tweener;

//MENU - - - - - - - - - -

//MENU ROLLOVER STUFF - (USING: TWEENER AS3 version - http://code.google.com/p/tweener/)

//mMenu.sIntro.buttonMode = true;
buttons(mMenu.sIntro);
buttons(mMenu.sNews);
buttons(mMenu.sFactual);
buttons(mMenu.sFictional);
buttons(mMenu.sServices);
buttons(mMenu.sProfile);
buttons(mMenu.sAdress);
buttons(mMenu.sEmail);

function buttons(a:Object):void {
   
    a.sBlack.alpha = 0.0
   
    a.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
    function rollOverHandler(event:MouseEvent):void {
        Tweener.addTween(event.target.sBlack, {alpha:1.0, time:0.0, transition:"linear"});
    }
    a.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
    function rollOutHandler(event:MouseEvent):void {
        Tweener.addTween(event.target.sBlack, {alpha:0.0, time:0.5, transition:"linear"});
    }
}

// YELLOW MARKER STUFF

marker(mMenu.sFront);
marker(mMenu.sProductions);
marker(mMenu.sCompany);
marker(mMenu.sContact);

function marker(a:Object):void {
    a.addEventListener(MouseEvent.ROLL_OVER, markOver);
    function markOver(event:MouseEvent):void {
        Tweener.addTween(mMenu.marker, {x:a.x, time:0.5});
        //trace(a.x);
    }
    /*
    a.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
    function mouseOutHandler(event:MouseEvent):void {
    Tweener.addTween(event.target., {alpha:0.0, time:0.5, transition:"linear"});
    }
    */
}
Last edited by Janmansilver : Today at 11:26 AM.
       
Today, 04:51 PM      #2
Janmansilver
Junior Member

Join Date: Feb 2006
Posts: 13
Improved, but still issues with the yellow marker
I've solved the black-highlighters, but I'm still having problems with how to do the yellow indicator correctly.

New swf: http://www.chainreact.dk/test/test2.swf

New source: http://www.chainreact.dk/test/test2.zip

Code:
stop()

// ANIMATION ENGINE - - - - - - - - - -
import caurina.transitions.Tweener;

//MENU - - - - - - - - - -

//MENU ROLLOVER STUFF - (USING: TWEENER AS3 version - http://code.google.com/p/tweener/)

//mMenu.sIntro.buttonMode = true;
buttons(mMenu.sIntro);
buttons(mMenu.sNews);
buttons(mMenu.sFactual);
buttons(mMenu.sFictional);
buttons(mMenu.sServices);
buttons(mMenu.sProfile);
buttons(mMenu.sAdress);
buttons(mMenu.sEmail);

mMenu.sIntro.sBlack.alpha = 100;

var mOn:Object = mMenu.sIntro;

function buttons(a:Object):void {
    //a.sBlack.alpha = 0.0;
    a.addEventListener(MouseEvent.MOUSE_UP, mouse_upHandler);
    function mouse_upHandler(event:MouseEvent):void {
        if (mOn != a) {
            Tweener.addTween(mOn.sBlack, {alpha:0.0, time:0.5, transition:"linear"});
        }
        mOn = a;
    }
    a.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
    function rollOverHandler(event:MouseEvent):void {
        Tweener.addTween(event.target.sBlack, {alpha:1.0, time:0.0, transition:"linear"});
    }
    a.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
    function rollOutHandler(event:MouseEvent):void {
        if (mOn != a) {
            Tweener.addTween(event.target.sBlack, {alpha:0.0, time:0.5, transition:"linear"});
        }
    }
}

// YELLOW MARKER STUFF

marker(mMenu.sFront);
marker(mMenu.sProductions);
marker(mMenu.sCompany);
marker(mMenu.sContact);

function marker(a:Object):void {
    a.addEventListener(MouseEvent.ROLL_OVER, markOver);
    function markOver(event:MouseEvent):void {
        Tweener.addTween(mMenu.marker, {x:a.x, time:0.5});
        //trace(a.x);
    }
    /*
    a.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
    function mouseOutHandler(event:MouseEvent):void {
    Tweener.addTween(event.target., {alpha:0.0, time:0.5, transition:"linear"});
    }
    */
}
Avatar billede eltempogigante Nybegynder
22. august 2007 - 21:16 #7
OPDATERING: Fand en løsning hvor man laver submenu-punkterne til "child"-elementer i menu-hovedsektionerne. Det er noget der eller volder problemer i AS 2, men i AS 3 virker det fint, var ellers bange for at skulle lave et hit-test hack i AS 3 også.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester