如果皮膚的組件未作爲skinPart公開,那麼以這種方式訪問它違反了封裝規則,並且通常會破壞Flex Skinning Spark模型的優點,該模型將業務邏輯與可視化顯示分開。
這就是說,你可以用這樣的訪問皮膚:
trace(skinAsSparkSkin.myVaribleInsideSkin);
:
// for a SparkSkin
var skinAsSparkSkin : SparkSkin = this.skin as SparkSkin;
// for a MobileSkin
var skinAsMobileSkin : MobileSkin = this.skin as MobileSkin;
// for your custom skin type
var skinAsCustomSkin : MyCustomSkin = this.skin as MyCustomSkin;
一旦你進入皮膚,你可以用這樣的訪問皮膚內公共變量
對於在MXML皮膚中創建的組件,它們不是皮膚部件,它們將是公共變量,您可以通過您在MXML代碼中定義的ID訪問它們:
在皮膚:
<s:List id="myList"/>
在組件類:
trace(skinAsSparkSkin.myList);
啊...類型轉換爲的伎倆!太棒了!謝謝。 – 2012-07-18 21:33:14