如果皮肤的组件未作为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