【发布时间】:2013-02-14 19:02:55
【问题描述】:
我正在用 flex 开发一个仪表板应用程序,它是 flex dashboard 的副本。这里有多个面板显示不同的内容。我想要的是每当用户点击任何特定面板说例如“年度收入”时,我只想突出显示该特定面板。
所以基本上所有处于初始状态的面板都处于“非活动”状态,但一旦用户点击它,它就会变为活动状态,为用户提供更好的体验,让用户知道他正在使用“xyz”面板并保持将进入非活动状态。
所以我所说的“活动”和“非活动”状态是指,在任何 HTML 页面中,当我们将鼠标悬停在任何超链接上时,它会变为“蓝色”(例如),因此我将其称为活动和非活动状态。
现在,谈谈面板。
面板具有定义其布局的皮肤。为了满足我的要求,我尝试将“css”应用于面板。现在我以这种方式应用了 css
public class Pod extends Panel
{
...properties
public function init():void
{
setStyle('styleName',"panelOff");
}
}
现在,在这个类中,我正在处理面板上的“CLICK”。所以在点击事件中我所做的基本上是,
setStyle('styleName',"panelOn");
由于面板应用了皮肤,我需要更改皮肤中包含的组件的属性。这样我就必须能够访问皮肤中的 css 属性。
在皮肤文件中我正在做这样的事情
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
setStyle('border-alpha', hostComponent.getStyle('border-alpha'));
}
所以我的问题是,这是满足我要求的正确方法吗?
如何访问皮肤中主机组件的 css 属性 班级 ?
在我的 main.mxml 中,我定义了样式文件。因此,如果 样式文件包含一个名为“panelOn”的样式类,如果我给它 类到面板,所以它能够访问相关的样式 那个班?
请不要建议使用面板的 setStyle 方法放置每个 css 属性,因为这样对我来说使用 css 文件没有任何好处,而且 css 样式也很糟糕。
如果还有其他更好的解决方案,请分享您的看法。我希望我很清楚。任何帮助将不胜感激。
【问题讨论】:
-
这有点难以理解——您是在问如何访问存储在主类中的样式信息吗?或者如何使用使用类选择器?
标签: css apache-flex flex-spark spark-skinning