AS3: Поиск дочернего объекта, на который вы нажимаете - PullRequest
0 голосов
/ 10 января 2011

У меня есть меню MovieClip, в котором есть кнопки. У меня есть меню с MousEvent.CLICK и я пытаюсь найти способ зарегистрировать то, на что вы нажимаете. Надеюсь, я в этом разбираюсь ... Спасибо!

private function menu_CLICK(e:MouseEvent):void
    {
        //this is where I need help on
        switch (????)
        {
            case "books" :
                showSection("books")
                break;
            case "music" :
                showSection("music")
                break;
            default :

        }
    }

    private function showSection(section:String)
    {
        switch (section)
        {
            case "books" :
                trace("books");
                break;
            case "music" :
                trace("music");
                break;
            default :

        }
    }

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Добавьте прослушиватели событий для каждого из объектов Button вместо одного в меню MovieClip.

Вы можете получить экземпляр объекта, на который вы щелкаете, используя e.target.Затем вам нужно либо сравнить с участниками, например: if (e.target == books), если кнопка вашего меню называется books , либо с именем этапа: if (e.target.name == "books"), либо с любым пользовательским свойством, добавляемым к кнопке..

0 голосов
/ 10 января 2011

Как насчет того, чтобы просто присвоить каждому вложенному клипу идентификатор?

var sections:Array = ['books', 'music', 'other1', 'other2', 'other3']

private function assignClips(){
    // lets say you have 5 buttons/clips inside of your holder movieclip, each named clip0, clip1, etc
    for (var i=0; i<sections.length; i++){
        var mc = holder.getChildByName('clip'+i)
        mc.id = i
        mc.addEventListener.MouseEvent.CLICK, menu_CLICK, false, 0, true)
    }
}

private function menu_CLICK(e:MouseEvent):void
    var id = e.currentTarget.id
    var val = sections[id]
    showSection(val)
}   

private function showSection(section:String){
    trace(section)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...