2011-12-29 48 views
0

我對AS3非常陌生。針對對象的AS3 CSS類類

我想給MC中的某些對象「類」(意思是類的CSS類)翻轉。所以我可以自動創建一個rollOver,它可以淡化所有聲明爲rollOver對象的對象。

的jQuery〔實施例

$("#myObject .rollOverObject").animate(...); 

什麼是實現類似的東西在AS3的最佳方式?

在此先感謝您,並致以最誠摯的問候。

+1

我認爲這可能是時候學習*新*範式... – 2011-12-29 13:56:58

回答

2

AS3中沒有CSS類。然而,你可以做的是在MC上創建一個EventListener並在那裏做你的動畫。它看起來像這樣。

for (var i : int = 0; i < mcContainer.numChildren; i++) 
{ 
    // reference to a child of the container 
    var mcChild:MovieClip = mcContainer.getChildAt(i) as MovieClip; 

    // validate by name 
    if(mcChild.name == "something you want to check") 
    { 
     mcChild.addEventListener(MouseEvent.ROLL_OVER, onMcRollOver); 
    } 
} 

function onMcRollOver(event:MouseEvent) : void 
{ 
    // create a reference to the MovieClip that is rolled over 
    var mcTarget:MovieClip = event.currentTarget as MovieClip; 

    // do what you like with the mcTarget 
    mcTarget.alpha = 0.5; 
} 

如果您使用的MovieClips,或者不需要ROLL_OVER聽衆了,那麼你可以在simular方式刪除這些監聽器來完成。

for (var i : int = 0; i < mcContainer.numChildren; i++) 
{ 
    // reference to a child of the container 
    var mcChild:MovieClip = mcContainer.getChildAt(i) as MovieClip; 

    // validate by name 
    if(mcChild.hasEventListener(MouseEvent.ROLL_OVER)) 
    { 
     mcChild.removeEventListener(MouseEvent.ROLL_OVER, onMcRollOver); 
    } 
} 

快速Google search可以幫助您進一步學習。

+0

感謝您的回答。不幸的是我需要動態訪問幾個對象,而不知道它有多少。有可能通過獲取每個MC的列表並檢查名稱來做到這一點。這樣我可以命名rollOver對象rO_ExampleName或類似的東西。有沒有像myMovieClip.each()? – matteok 2011-12-29 13:37:17

+0

我更新了我的答案。你可以使用'numChildren'循環播放孩子們。 – 2011-12-29 13:53:41

+0

非常感謝。我最後一個問題有一點偏離主題。如果我用加載器類加載電影,我可以使用myLoader.content來訪問它。不幸的是myLoader.content是一個DisplayObject,而不是一個MovieClip,所以如果我使用你建議的循環,我會得到一個錯誤。有沒有解決辦法,或者我做錯了什麼? – matteok 2011-12-29 14:08:54