计划总是赶不上变化,除了发博文,这是我唯一能够找到发泄的出口。本来想周末好好总结可是系统连续崩溃,彻底得重装系统。正好老师找我有事情,所有的事情都抵到起了,培训方面也是只能夜里自己回来细看,并且尽自己最大努力能往前看多少是多少,但是还是感觉慢了一个星期的节奏。实在是很无语就是!
今天接着前天的日志将内容好好的总结一下,也就是Screen及Panel。可能很多人会觉的这有什么好总结的,这些只不过是一个窗体容器罢了,一般组件要比这些作用大些,但是在feather里面反而不是这样!说是Screen及ScreenPanel更多的其实也是介绍ScreenNavigator界面导航的使用
Screen及ScreenPanel
这两个也并没有什么太大的区别,但是之所以先总结这个,因为根据官方文档介绍,feather的组件其实是当做Screen来渲染的,所以有一些规则不可回避,并且屏幕自适应方面,我觉得这个部分是基础!并且feather里面自带ScreenNavigator这个类,供我们对界面导航。
Screen初识
Screen说简单了就是一个窗体容器,Screen可以自动根据传入的缩放比率调整像素布局,并且由于Screen里面可以设置layout属性,所以尽量使用layout来确定样式以及子元素之间的位置关系,减少响应式定位的计算难处,才是自适应开发应当注意的。注意:组件也是作为Screen来渲染的,所以组件也都含有layout属性设置!此属性类似于CSS的使用规律。
ScreenNavigator界面导航的初步使用
这是我觉得feather提供的非常强大的一个功能了,不仅对于界面的切换动画可以指定,效果很流畅,还自动监听每一个Screen的在ScreenNavigator事件地图里面注册的事件,为我们界面之间的切换减少自己脱离的复杂程度。
第一天我们最后需要启动Controller.as这个类,这个类则需要继承自Starling的Sprite,我们需要在这个类当中使用ScreenNavigator!来调配我们的UI类。
1:
2: public class Controller extends Sprite
3: {
4: private static const FIRST_UI:String = "MyFirstrUi"; //定义添加界面,id常量
5:
6:
7: private var _navigator:ScreenNavigator;
8:
9: public function Controller()
10: {
11: super();
12: this.addEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
13: }
14:
15: private function addedToStageHandler(e:Event):void
16: {
17: this.removeEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
18: this._navigator = new ScreenNavigator();
19:
20: //添加界面,并对应界面ID(MyFirstUi为界面类名称)
21: this._navigator.addScreen(FIRST_UI,new ScreenNavigatorItem(MyFirstrUi));
22: this.addChild(this._navigator);
23: this._navigator.showScreen(FIRST_UI);//通过常量显示对应界面
24: }
25: }
这里就不详细说明这个类其他一些特性和一些高级特性的知识,因为其他都涉及到更多的事件机制,但是到这里我们完全就可以显示自己的Screen了,并且注意一点:navigator其实也是一个Screen也是添加在舞台上的,所以他同样具有宽度和高度等一系列属性供我们操作,不仅仅是一个管理器。
等一会如果有时间再把UI组件,就以List为例来总结一下,因为List里面涉及的内容还是相当多的。