Avatar billede kalleballe Nybegynder
23. maj 2005 - 15:45 Der er 3 kommentarer og
1 løsning

få knap til at reagere i menu

jeg har:

class MenuItem extends MovieClip{
    public var menuItem:Object;
    public var subMenuItems:Object;
    public var link_str:String;
    private var subMenu:Boolean = false;
    public var label_txt:TextField;
    public var halo_mc:MovieClip;
    public var sub_mc:MovieClip;

    public function MenuItem() {
        this.halo_mc._visible = false;
    }

    public function populateItem(menuItem:Object) {
        if (menuItem.sub.length > 0){
            this.subMenuItems = menuItem.sub;
            this.subMenu = true;
            this.createEmptyMovieClip("sub_mc", 100,{_x:0,_y:0});
            var xmlObj = this.subMenuItems;
            var subMenuItemCount:Number = xmlObj.length;
            var parentX = this._x;
            var itemX:Number = (-parentX);
            var itemY:Number = this._height;
            //var rowW:Number = this._width;
            for(var i=0; i<subMenuItemCount; i++){
                this.sub_mc.attachMovie("subMenuItem","subMenu"+i, i, {_x:itemX,_y:itemY});
                this.sub_mc["subMenu"+i].populateItem(xmlObj[i]);
                itemY += this.sub_mc["subMenu"+i]._height
               
            }
            this.sub_mc._visible = false;
        }
        this.menuItem = menuItem;
        this.label_txt.text = menuItem.name;
        link_str =  menuItem.action;
    }
    public function onRelease() {
        this._parent.resetSubMenu();
        this.halo_mc._visible = true;
        if(subMenu){
            //show sub menu
            this.showSubMenu();
        }else{
            getURL(    this.link_str, "_blank" );
        }
    }
    public function onRollOver() {
        var color = new Color(this.label_txt);
        color.setRGB(0xCC0000);
    }
    public function onRollOut() {
        var color = new Color(this.label_txt);
        color.setRGB(0xFFFFFF);
    }
    function showSubMenu(){
        trace("showSubMenu");
        this.sub_mc._visible = true;
    }

   
}


Mit problem er at jeg ikke kan komme i kontakt med min undermenu punkter da onRelease metoden kun virker på top niveauet.

Så altså problemt er lidt, - en knap i en knap agtigt....

Hvordan kan jeg løse dette?

vh

KalleBalle
Avatar billede kalleballe Nybegynder
23. maj 2005 - 15:46 #1
det jeg jo gerne vil have er at man kan kilkke på et link i de items der er i this.sub_mc
Avatar billede barklund Nybegynder
23. maj 2005 - 16:21 #2
Lav et movieclip med en tilhørende klasse inden i punktet som baggrund i punktet, der kun står for at modtage knap events. Så skal du altså flytte alle dine events ind i denne klasse.
Avatar billede kalleballe Nybegynder
23. maj 2005 - 16:30 #3
ok tak, - jeg havde ellers en menu der brugte menu komponentet,- desværre er de data som hvert menupunkt skal loade eksterne swf filer som er såkaldte flashPapers, og det er som om at der op står en konflikt i menuen når man loader en flashpaper fil.

Min menu kode ser sådan ud:

////////////////////////////////////////////////////////////////
// Help Menu
////////////////////////////////////////////////////////////////
stop();
var helpMenu = myMenuBar.addMenu("Help");
helpMenu.addMenuItem({label:"About", instanceName:"aboutMenuItem"});
helpMenu.addMenuItem({label:"Ultrashock", instanceName:"aboutUltrashock"});


////////////////////////////////////////////////////////////////
// Help Menu Listener
////////////////////////////////////////////////////////////////
         
var helpMenuListener = new Object();
         
helpMenuListener.change = function(eventObject){
    var theMenu = eventObject.menu;
    var theMenuItem = eventObject.menuItem;
    switch (theMenuItem)
    {
        case theMenu.aboutMenuItem:
            // about selected
            trace ("Help Menu: About selected");
        _root.mc_content.loadMovie ("flashPaper1.swf");
        break;
         
        case theMenu.aboutUltrashock:
            // ultrashock selected
            trace ("Help Menu: Ultrashock selected");
        _root.mc_content.loadMovie ("flashPaper2.swf");
     
        break;
         
        default:
            // error: unknown menu item
            trace ("Error: Unknown menu item selected");
        break;
    }
}
         
helpMenu.addEventListener("change",helpMenuListener);

Når jeg så loader en af mine flashpapers er det hele fint, - men bruger jeg f.eks. scroll baren i min flash paper så holder menuen op med at virke med mindre man dobbeltklikker....

kan det være min change event der bliver opfattet fælles for de 2 komponenter på en eller anden måde??
Avatar billede kalleballe Nybegynder
11. november 2005 - 16:22 #4
lukker
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