Feathers基于Starling学习笔记

来源:互联网 发布:上载数据拓普康全站仪 编辑:程序博客网 时间:2024/05/16 01:32

1.starling textfield 水平、垂直对齐方式设置:

tf.vAlign = VAlign.TOP;

tf.hAlign = HAlign.LEFT;

 

2、feathers的textInput是一个starling对象,但是它里边的TextField是flash.text.TextField的。

所以就算你把它放到其它Starling显示对象的下面,文字还是不会在下面的

但这个TextField会随着textInput的移动而移动

 

3、feathers的Panel是一个可以设置标题、布局的,带滚动条的面板。

设置标题:panel.headerProperties.title = "Is it time to party?";

设置布局:var layout:VerticalLayout = new VerticalLayout();

layout.gap = 20;

layout.padding = 20;

panel.layout = layout;

 

4、Panel--〉ScrollContainer--〉Scroller--〉FeathersControl--〉starling.display.Sprite

 

 

5、Panel不启用水平滚动条:panel.horizontalScrollPolicy = Panel.SCROLL_POLICY_OFF;

Panel.SCROLL_POLICY_AUTO和Panel.SCROLL_POLICY_ON:启用

 

6、panel.scrollBarDisplayMode = Panel.SCROLL_BAR_DISPLAY_MODE_FIXED;一直显示滚动条

panel.scrollBarDisplayMode = SCROLL_BAR_DISPLAY_MODE_FLOAT;拖动的时候才显示滚动条

panel.scrollBarDisplayMode = SCROLL_BAR_DISPLAY_MODE_NONE不显示滚动条,但仍可以拖动

 

 

7、想使用滚动条,用ScrollContainer就可以了,没有必要用Panel,Panel只是加了标题标尾的功能

 

8、panel滚动条是不可以拖动的,可能拖动里面的内容。滚动条滚动方向和手势方向相反。适合在手机上用

 

ScrollContainer则和网页上的普通滚动条一样

 

9.ScrollContainer的滚动条不会超出你设置的width

 

10、

 

设置label的属性:

container.addChild(label);

label.textRendererProperties.textFormat = new TextFormat( "宋体", 20, 0xff0000 );

label.text = "I am the feathers label!"

 

当Feathers的Label被添加到舞台上的时候会对Label进行默认的字体设置,啊哦----所以大家都明白是怎么回事了吧,把顺序换一下就可以起作用了

 

label.textRendererProperties.textFormat,.textFormat其实是label类里textRenderer实例的属性:

const factory:Function = this._textRendererFactory != null ? this._textRendererFactory : FeathersControl.defaultTextRendererFactory;

this.textRenderer = ITextRenderer(factory());

 

==================

1.由于aeonDesktopTheme主题中有代码:

protected static function textRendererFactory():ITextRenderer

{

return new TextFieldTextRenderer();

}

所以调用label.textRendererProperties=……后最终会调用label.refreshTextRendererStyles

最终会设置textRenderer的属性(textRenderer即TextFieldTextRenderer),从而达到改变label文字属性的作用

 

 

2、thickness 厚度

measure 测量

 

3、feathers的label设置HTML格式字体:starling的textField不支持HTML格式

label.text="<font color='#ff0000' size='20'>I am the feathers label!</font>";

label.textRendererProperties.isHTML = true;

 

4、label.textRendererProperties.wordWrap = true;让文本自动换行

label.textRendererProperties.background = true;显示文本背景

label.textRendererProperties.border = true;显示边框

label.textRendererProperties.displayAsPassword = true;作为密码文本

 

5、ScrollText是一个自带滚动条的文本组件。它的textfield不是starling的,所以会一直在starling显示对象的下面。label的textfield默认是starling的

 

6、textinput适合单行输入,textarea自带滚动条适合多行输入

 

7、buttonGroup.buttonFactory可以设置ButtonGroup中生成的按钮,但类型只能是Button

buttonGroup.buttonInitializer = function(btn:Button,data:Object):void{

btn.width = 200;

};可以对每个按钮在初始化时进行一些操作

 

 

8、ButtonGroup使用buttonFactory后,就不能在dataProvider的数据中设置triggered点击事件响应函数了

 

9、PageIndicator是一个单纯的页数显示的控件

pageIndicator.pageCount = 3;

pageIndicator.selectedIndex = 2;//显示当前是第3页。从0开始

pageIndicator.normalSymbolFactory设置页码未被选中的显示对象

pageIndicator.selectedSymbolFactory设置页码已被选中的显示对象

 

10、pickerList就是一个 combobox:下拉选择菜单

 

11、PickerList是由一个有特殊皮肤的Button+List组成,List的弹出由DropDownPopUpContentManager弹出

 

12、更换一个按钮皮肤:

var btn:Button = new Button();

btn.nameList.add(NumericStepper.DEFAULT_CHILD_NAME_INCREMENT_BUTTON);

container.addChild(btn);

 

13、自定义一个按钮皮肤:

(1)_theme.setInitializerForClass( Button, myCustomButtonInitializer, "my-custom-button" ;

private function myCustomButtonInitializer( button:Button ):void

{

button.defaultSkin = new Image( upTexture );

button.downSkin = new Image( downTexture );

button.hoverSkin = new Image( hoverTexture );

 

button.defaultLabelProperties.textFormat = new TextFormat( "fontName", 18, 0xffffff );

}

(2)var btn:Button = new Button();

btn.nameList.add("my-custom-button");

container.addChild(btn);

 

 

14、和starling的image一样,feathers的imageloader上存在一个 color 属性值得大家记住,该属性允许你为一个图片指定一个颜

色值。在 Image 对象中,每个像素的颜色值都是由其纹理的颜色值和你指定的 color 颜色值

混合的结果。

 

15、在函数内部写侦听函数时,要注意先定义函数数再侦听,否则为空

 

16、当你用一个imageLoader作为一个Button的皮肤时,只有此按钮的状态对应,才会去加载这个图片

 

17、starling.textures.RenderTexture API 允许开发者在 Starling 中实现无损绘画功能

mRenderTexture = new RenderTexture(stage.stageWidth, stage.stageHeight);

var canvas:Image = new Image(mRenderTexture);

addChild(canvas);

mRenderTexture.draw(DisplayObject);

 

18、当自定义按钮皮肤时,myCustomButtonInitializer函数里,btn.defaultSkin不能=imgageLoader。因为这样的话,会导致鼠标移上去不会切换到hover状态,只能用一个已存在的图片。

各种状态也是不能用未完成加载的imgageLoader

 

19、Callout 的使用:

Callout 是在一个目标显示对象的周围弹出一个自定义的显示对象,但它的弹出位置只是固定上下左右,不会随着鼠标动而动

btn.addEventListener(TouchEvent.TOUCH,function(e:Event):void{

var callout:Callout = Callout.show(tip,btn);

callout.disposeContent = false;// 不写这句,弹出一次第二次就不见了

});

文章转自

0 0
原创粉丝点击