2010-09-07 3 views
0

У меня возникли проблемы со следующим меню. Я адаптировал скрипт из кирупы в actionscript 3. Когда я дойду до последнего уровня меню, он не будет правильно связываться. Он всегда берет последний URL-адрес связки в качестве URL-адреса для всех ссылок в этой ветке дерева.Actionscript 3 drop down menu link error

Может ли кто-нибудь помочь мне заставить его правильно установить связь? Замятие с fla и xml можно найти по следующей ссылке.

http://www.jdviz.com/projects/xmlmenu.zip

Спасибо,

ответ

0

Там проблема с закрытием в конце кода. Текущая кнопка не идентифицирована должным образом.

 
if (node_xml.childNodes[i].nodeName != "resource") { 
//cleared the code for clarity... 
     } else { 
      curr_item.arrow.visible = false; 
      curr_item.addEventListener(MouseEvent.MOUSE_DOWN, function(e:MouseEvent):void { 
      trace(curr_item.urlLink); 
      }); 

     } 

изменить выше:

 
var currentButton:MenuItem_mc = new MenuItem_mc(); 

function mouseOverHandler(e:MouseEvent):void 
{ 
    currentButton = e.currentTarget as MenuItem_mc; 
    currentButton.addEventListener(MouseEvent.CLICK , clickHandler); 
} 

function clickHandler(e:MouseEvent):void 
{ 
    var btn:MenuItem_mc = event.currentTarget as MenuItem_mc; 
    trace(btn.urlLink); 
} 

if (node_xml.childNodes[i].nodeName != "resource") { 
//cleared the code for clarity... 
} else { 
    curr_item.arrow.visible = false; 
    curr_item.addEventListener(MouseEvent.MOUSE_DOWN, mouseOverHandler); 

     } 
+0

Это работало отлично! Огромное спасибо. Не могли бы вы немного объяснить это? или указать мне в правильном направлении, какие темы мне нужно сосредоточить на обучении. –

+0

попытка понять чужой код - отличный способ узнать, вы можете попробовать сделать это с помощью этого примера. попробуйте сломать его, сделайте более простую версию, без подменю, например, затем медленно добавьте сложность, пока вы не сможете переделать ее самостоятельно. – PatrickS

+0

Спасибо, вот что я сделаю. –