2010-02-17 56 views
1

有誰知道是否可以訪問SWC中的子元素?我創建了一些MC,在這些MC的一些內部,我有一些動態文本字段。我將內容導出到SWC並將其加載到我的Flex項目中。加載它或訪問父元素沒問題,它們顯示正常。但我想訪問MC中的textfields nestes並修改文本。當我調試應用程序時,我可以將文本框視爲子元素。它的類型爲TextField,實例名稱與Flash IDE中的輸入相同,但我無法訪問它。 Flex編譯時會拋出一個錯誤,表示它不能識別該方法。我試圖在時間軸上插入actionscript,鏈接外部類,並且什麼都不能訪問。有誰知道一種方法來做到這一點?訪問SWC中的子元素

+0

我認爲你需要告訴我們你的「重新嘗試 - 你的COM Cory使得它看起來像只是試圖訪問導入類的字段。他們是公開的嗎?它們的類型是否在SWC中導出? – 2010-02-17 05:43:09

+0

我知道,問題是,我不知道如何顯示你,它不是所有的代碼,截圖也許?我通過每個MC上的鏈接選項在Flash IDE中導出每個運行時組件,以便導出的類是我可以通過swc訪問的類。我不知道如何以這種方式公開這個子元素(textfield)。這是我第一次使用swc。這是正確的方法嗎?我將這些組件中的每一個放置在另一個父容器元素中,並將其導出爲一個swc。 – 2010-02-17 13:03:01

回答

1

這很難說,因爲你沒有展示你的代碼失敗了,但我懷疑你正在做的:的

import myswc.*; 

myswc.Symbol1.myTextField.text = "Foo" 

代替

var clip:MovieClip = new myswc.Symbol1(); 
clip.myTextField.text = "Foo" 
+0

我已將我的swc放置在庫路徑下的Flex Build Path中。因此,我試圖訪問的組件可立即通過 var comp:Sprite = new componentFromSWC(); 然後我可以通過引用comp變量來訪問該元素。不需要導入,因爲它在構建路徑中。當我嘗試通過swc引用符號/元素的方法時,它無法識別它 - 引發編譯器錯誤。是否有另一個我應該設置我的SWC導入?這似乎首先起作用,我認爲它可以訪問所有元素。 – 2010-02-17 04:23:09

+0

只有當您將包含符號的包裝導出到默認包裝中時,才需要導入。正確包裝你的課程是一個好習慣。 「myswc」在這裏不是一個神奇的名字,它是你在符號導出中使用的任何包的佔位符。 更重要的是,Sprite不是一個動態類 - 所以不要使用'comp.myTextField.text'嘗試'comp [「myTextField」] .text'。 – 2010-02-17 17:20:40

+0

我遇到同樣的問題。同樣,這不完全是一個基於代碼的問題,但我會試着解釋: – 2011-01-18 20:56:39

0

我只是碰到了這個問題,以及,並且很好奇你爲什麼暗示他沒有使用實例名稱,因爲myTextField顯然是他使用的TextField的實例名稱....