2013-04-12 96 views
0

我有一個名爲Tile的MovieClip,它有自己的類。我在for循環中創建了一個網格,下面的代碼。訪問MovieClip中的MovieClip

var tile:MovieClip = new Tile(); 
tile.gotoAndStop(Floor1[i][u]+1); 
tile.x = ((u-i)*tileh)+365; 
tile.y = ((u+i)*tileh/2)+70; 
addChild(tile); 

tile.addEventListener(MouseEvent.ROLL_OVER, mouseover); 

現在,在Tile中還有另一個叫做Outline的移動滑塊。這不是一堂課。我想要做的是當我用鼠標滾動tile變量時,將Outline movieclip移動到一幀。

下面是鼠標事件的功能。我已經嘗試event.currentTarget.Outline.gotoAndStop(3),但它似乎沒有工作。我得到一個參考錯誤#1069:在Tile上找不到屬性大綱,並且沒有默認值。

function mouseover(event:MouseEvent) 
     { 
      event.currentTarget.Outline.gotoAndStop(3); 
     } 

回答

1

Outline(所有變量應該是小寫,駝峯的。資本意味着它是一個類名的方式)公共變量?你應該在全球範圍內宣佈大綱如下:

package com.blah.blah 
{ 
    public class Tile extends DisplayObjectContainer { 

     public var outline:DisplayObject; 

     public function Tile() { 
      // instantiate outline here 
     } 
    } 
} 

訪問修飾符的基本解釋:

  • 公共:可從訪問:可從任何類
  • 私人訪問只在
  • 內部聲明的類:只能由山姆中的類訪問È包
  • 靜態:只有一個實例存在,只能通過類 範圍(Class.function())
  • 保護訪問:只有延長該類可以訪問該對象
  • 類最終:孩子不能覆蓋功能
+0

感謝您的答案,Apocalyptic0n3! 首先,我改變了我的MovieClip Outline來創建一個類。我是否將公共變量大綱放在Tile類或我的Main類中?我忘了提及,我上面發佈的代碼都在Main中。 – Bindlestick

+0

「Tile中的另一個叫做Outline的移動滑板它不是一個類」所以你可以在Tile中做。並在該事件監聽器中以「(e.currentTarget as Tile)」的形式訪問它.Outline' –

+0

Man!謝謝你太多了!我很感激。 – Bindlestick