2010-12-22 66 views
-1

這個工程:0作爲索引 - 這讓我瘋狂!

 

subnavData = new Array(
       {"title":"PROCESS", "func":this.changeSlide, "param":this.showProcess}, 
       {"title":"OVERVIEW", "func":this.changeSlide, "param":this.showServices, "hasChild":true}, 
        {"title":"CREATIVE DIRECTION", "func":this.changeSlide, "param":this.showBranding, "childOf":1}, 
        {"title":"SOCIAL INTERACTIVE", "func":this.changeSlide, "param":this.showOnline, "childOf":1}, 
        {"title":"LIVE EVENTS", "func":this.changeSlide, "param":this.showLiveEvents, "childOf":1}, 
        {"title":"CONTENT STRATEGY", "func":this.changeSlide, "param":this.showPerformance, "childOf":1}, 
       {"title":"CASE STUDIES", "func":this.changeSlide, "param":this.showCaseStudies}, 
       {"title":"CLIENTS", "func":this.changeSlide, "param":this.showClients} 
      ); 

但這並不:

 

subnavData = new Array(
       {"title":"OVERVIEW", "func":this.changeSlide, "param":this.showServices, "hasChild":true}, 
        {"title":"CREATIVE DIRECTION", "func":this.changeSlide, "param":this.showBranding, "childOf":0}, 
        {"title":"SOCIAL INTERACTIVE", "func":this.changeSlide, "param":this.showOnline, "childOf":0}, 
        {"title":"LIVE EVENTS", "func":this.changeSlide, "param":this.showLiveEvents, "childOf":0}, 
        {"title":"CONTENT STRATEGY", "func":this.changeSlide, "param":this.showPerformance, "childOf":0}, 
       {"title":"PROCESS", "func":this.changeSlide, "param":this.showProcess}, 
       {"title":"CASE STUDIES", "func":this.changeSlide, "param":this.showCaseStudies}, 
       {"title":"CLIENTS", "func":this.changeSlide, "param":this.showClients} 
      ); 

...當這個函數來處理的:

 

private function makeNewSubNav($data:Array):void { 
      group = new Array(); 

      for(var i:Number = 0; i < $data.length; i++){ 
       var obj:Object = new Object(); 
       obj.active = false; 
       obj.mc = new MovieClip(); 
       if($data[i].childOf) { 
        obj.childOf = $data[i].childOf; 
        obj.mcB = new SubMenuTopButton(); 
        obj.mcB.arrow.x = -obj.mcB.arrow.width; 
        obj.mcB.txtmask.x += 10; 
        obj.mcB.y = group[obj.childOf].subMasked.height; 
        var childbg:Sprite = new Sprite(); 
        childbg.graphics.beginFill(0xfdddf0, 1); 
        childbg.graphics.lineStyle(); 
        childbg.graphics.drawRect(0,0,167, 21); 
        childbg.graphics.endFill(); 
        obj.mcB.addChildAt(childbg, 0); 
        group[obj.childOf].subMasked.addChild(obj.mc); 
       } else { 
        obj.childOf = false; 
        obj.mcB = new SubMenuTopButton(); 
        navContainer.addChild(obj.mc); 
       } 
       obj.mc.addChild(obj.mcB); 
       obj.mcB.txtmask.tf_name.text = $data[i].title; 
       obj.mcB.buttonMode = true; 
       obj.mcB.mouseChildren = false; 
       obj.mcB.num = i; 
       obj.callback = $data[i].func; 
       obj.param = $data[i].param; 
       obj.mcB.addEventListener(MouseEvent.CLICK, navPress); 
       obj.mcB.addEventListener(MouseEvent.MOUSE_OVER, navOver); 
       obj.mcB.addEventListener(MouseEvent.MOUSE_OUT, navOut); 

       if($data[i].hasChild){ 
        obj.hasChild = true; 
        obj.subContainer = new MovieClip(); 
        obj.subMasked = new MovieClip(); 
        obj.subMask = new MovieClip(); 
        obj.subMask.graphics.beginFill(0x0000FF,1); 
        obj.subMask.graphics.lineStyle(); 
        obj.subMask.graphics.drawRect(0,0,width,1); 
        obj.subMask.graphics.endFill(); 
        obj.subMask.height = 0; 
        obj.subContainer.addChild(obj.subMasked); 
        obj.subContainer.addChild(obj.subMask); 
        obj.subMasked.mask = obj.subMask; 
        obj.subContainer.y = obj.mc.height; 
        obj.mc.addChild(obj.subContainer); 
       } 
       group.push(obj); 
      } 

      group[0].active = true; 

      adjustHeight(); 

     } 


我知道這已與做值爲零。我只是不知道該怎麼做。孩子們應該組成一個子菜單。有任何想法嗎?

+0

什麼不起作用?你在函數中遇到錯誤嗎? – 2010-12-22 01:37:12

回答

1

我敢打賭,問題是這一行:

if($data[i].childOf) { 

和你的語言對待0等同於假。所以找到另一個表示 - 可能是作爲標誌的負值,或更明確的測試。

2

在我看來,既然childOf是0 if ($data[i].childOf)失敗

嘗試任何這些:

if ($data[i].hasOwnProperty('childOf') 
if ($data[i].childOf != undefined) 
if ($data[i].childOf != null)