2010-08-12 56 views
0

前言:我正在使用導入的圖像製作美國50個州的地圖。將SWF導入爲hitTestState

我正在使用一段XML將圖像路徑導入Loaders,然後使用Loaders來填充多個影片剪輯(此工作正常)。我發現自己現在需要導入每個美國國家形式的SWF作爲50個按鈕的hitTestState。有人建議我使用一個單獨的類來定義新的按鈕狀態,但是恐怕我的編程技巧還沒有發展到足以讓我理解我如何能夠:

a。將包含SWF路徑的XMLList信息傳遞給新類 b。使用for循環填充50個按鈕的hitTestState(s)

以下是我用來將圖像填充到各個按鈕中的功能。我想我會使用這個相同的函數來生成或填充一個按鈕,我可以將這個SWF作爲hitTestState發送。

private function populateButtonImages(): void { 

      //var hoverState:StateBut = new StateBut();// 

      for(var i:int = 0; i <= total; i++){ 

       offLoader = new Loader(); 
       hoverLoader = new Loader(); 
       //hitLoader = new Loader(); 

       var offName:String = pathage + _activeImage[i].toString(); 
       var hoverName:String = pathage + _hoverImage[i].toString(); 
       //var hitName:String = pathage + _hitState[i].toString(); 

       offLoader.load(new URLRequest(offName)); 
       hoverLoader.load(new URLRequest(hoverName)); 
       //hitLoader.load(new URLRequest(hitName)); 

       this["button" + i].offImage.addChild(offLoader); 
       this["button" + i].hoverImage.addChild(hoverLoader); 
       //this["button" + i].hitButton.addChild(hitLoader); 


       //this["button" + i].hitButton = new StateBut();// 
       this["button" + i].hoverImage.mouseEnabled = false; 
       //this["button" + i].buttonMode = true; 

       //moves hover image to more appropriate location over button 
       this["button" + i].hoverImage.x = _hoverOffsetX[i]; 
       this["button" + i].hoverImage.y = _hoverOffsetY[i]; 

      } 

      addMapButtonListeners(); 

     } 

我已經評論了我原來嘗試添加SWF作爲命中狀態的剪輯的行。

在一個完美的世界中,我想製作50個按鈕,填充按鈕的上,下和hitStates,而不必擔心在MovieClips上執行hitTest以及我已經解決的其他各種問題遠。

幫助?建議是受歡迎的。知識就是力量。

回答

0

如果您將hitareas作爲向量以及每個狀態的圖形,那麼在Flash IDE中手動創建按鈕可能更容易?然後,您可以「導出腳本」每個按鈕並導出爲一個SWF。

在您的主項目中,您可以加載SWF並訪問所有工作按鈕。