Flex4使用 IStyleManager2 代替 StyleManager
由于mx.styles.StyleManager.getStyleDeclaration(selector:String):CSSStyleDeclaration自4.0以来被弃用,So?
在Flex4中你不能再调用StyleManager类作为单例模式了(StyleManager.getStyleManager())。
只要用StyleManager的工具IStyleManager2然后直接引用styleManager就可以了,像这样:
var styleManager:IStyleManager2 = FlexGlobals.topLevelApplication.styleManager;
我来看看如何把Flex3项目中的样式声明和引用转化为Flex4项目的形式。
看一个正确例子:
var style:CSSStyleDeclaration=mx.core.FlexGlobals.topLevelApplication.styleManager.getStyleDeclaration("DragManager");
为什么每次样式表的变量都是null(空的)。
检查stylemanager的selcetors属性之后,selectors的引用被改变了!这个引用必须包含完整的类包路径。
所以最后的变化就是我们需要更改一下类的路径名称。现在我们来改写代码:
var style:CSSStyleDeclaration=mx.core.FlexGlobals.topLevelApplication.styleManager.getStyleDeclaration("mx.managers.DragManager");
好了 现在我们的样式声明就跟我们期望的一样了。