2011-07-22 24 views
0

我一直試圖通過使用時間線腳本來引用幀2中引入的庫符號,使用它的實例名稱。稍後在時間線上引用一個MovieClip符號

我想讓一個顏色選擇器MC符號多次重複使用。首先,我在舞臺上畫了一個小按鈕,並將其轉換爲MC,名稱爲textColourPicker,類型爲CPicker(用於在圖書館中表示此MC的類)。此MC內我有稱爲pickerButton

textColourPicker MC的第一幀按鈕元件,我放置的代碼:

stop(); 
pickerButton.addEventListener(MouseEvent.CLICK, doShowPicker); 

function doShowPicker(e:MouseEvent):void 
{ 
    gotoAndPlay(2); 

} 

textColourPicker實例的第2幀,一個新的MC出現與實例名pickerBox類型爲pickerBMP。該pickerBox然後大規模補間,直到幀14,在這一點上我有代碼:

stop(); 
pickerBox.addEventListener(MouseEvent.MOUSE_OVER, cursorToColour); 

除了我總是得到錯誤:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at CPicker/frame14()[CPicker::frame14:10] 

這裏CPicker是指textColourPicker MC的鏈接名稱。

所以textColourPicker是實例:myPicker,鏈接名稱:CPicker

pickerBox是實例:pickerBMP,鏈接名稱:pickerBMP(駐留在textColourPicker MC裏面

爲什麼沒有讓我引用textColourPickertextColourPickerpickerBox MC?textColourPicker時間表的這個圖形可能有助於說明所有這些情況(不是TE兩個時間表腳本圖標,先在第1幀,最後在幀14:

Timeline screengrab

+0

第14幀什麼是pickerBMP層對象名稱? –

+0

@Jevgenij Dmitrijev - 它是一樣的名稱,它總是這是'pickerBox' – Alex

回答

1

我寫了一篇文章爲InsideRIA上這樣做正是你正在嘗試做的。在此存檔:

http://www.developria.com/2010/04/combining-the-timeline-with-oo.html

這在我看來,最好的辦法是的getter/setter方法,因爲你必須在那裏一個新的值將被插入到該變量的值,結束一個關鍵幀。對於兩種方法

實施例的代碼可以在這裏http://flexdiary.blogspot.com/2010/04/sample-code-for-oop-timeline-insideria.html

HTH;

艾米

+0

嗨艾米,謝謝你的答案...! :)所以我在做的是決定是否應該使用文檔類或我正在使用的所有這些(在主應用程序中)單獨使用的類文件。我主要關心的是可重用性;我想我可以導入一個.swf。再次感謝! – Alex

+0

如果您查看示例代碼,您將會看到它的工作方式是主fla文件使用。作爲它的文檔類文件 - 這可以被具有相同需求的任何fla文件重用。 我不知道如何導入一個SWF文件實際上涉及到任何這一點。你能解釋一下你打算用導入的swf做什麼嗎? –

+0

只需擁有一個始終可以用作顏色選擇器的文件,而無需在每個可能使用選取器的項目的類/事件中編寫代碼。 – Alex

相關問題