Flexlite框架自定义皮肤
package
{
import org.flexlite.domUI.components.TitleWindow;
import org.flexlite.domUI.managers.SystemManager;
import org.flexlite.domUI.skins.vector.TitleWindowSkin;
/**
* TitleWindow测试
* @author DOM
*/
public class TitleWindowTest extends SystemManager
{
public function TitleWindowTest()
{
super();
var window:TitleWindow = new TitleWindow();
window.height = 300;
window.width = 400;
window.x = 30;
window.y = 30;
window.title = "测试窗口";
window.skinName = TitleWindowSkin;//指定皮肤
addElement(window);
}
}
}
注意这句:
window.skinName = TitleWindowSkin;
只要给组件的skinName指定一个皮肤类即可
每个例子的文档类都继承自AppContainer。而它的构造函数里有这么句:Injector.mapClass(Theme,VectorTheme);意思是配置全局主题为默认的VectorTheme,如果组件没有被显式指定skinName,就会调用你注入的Theme实例,为自己查询获取一个默皮肤。你在项目里也可以定义自己的主题类,为每个组件配置默认皮肤。写起来就可以直接省略赋值皮肤这一步了。并且当你要修改默认皮肤的时候,也只需改这一个地方即可。具体参考VectorTheme的写法。框架里没有默认启用VectorTheme是为了减少不必要的引用,从而减小编译大小。项目开发的时候建议加上那句,开启默认皮肤方便调试,等到发布的时候去掉就行了。