qq229449388 发表于 2017-11-16 01:02:06

羔羊引擎之TitleWindow(带标题窗口)

本帖最后由 qq229449388 于 2017-11-16 01:46 编辑

先看效果

http://zsh.gyarea.com/GYLiteLesson/swfs/lesson3/GYLiteAPI.swf?1
TitleWindow顾名思义,就是带标题的窗口,羔羊引擎已经加入TitleWindow的皮肤,名叫TitleWindowSkin,实现IWindowSkin或者继承TitleWindowSkin可以自定义TitleWindow的皮肤,如果不记得皮肤与组件的关系,回去看按钮皮肤的那一节,传送门快去快回。
这节的内容比较简单,我们现在创建一个主题的TitleWindow来看看


_win = new GYTitleWindow;
_win.width = 400;
_win.height = 400;
_win.setTitle("羔羊引擎");//必须先设置标题,才可以设置标题属性
s.addChild(_win);创建窗口很简单,就只需要你们喜欢的new,new ,new,记得一定要设置宽高,因为默认是0,不设置是什么都看不到的。还有一个重点就是组件里设置文本的地方,如TitleWindow这种,要先设置标题,才可以设置标题文本的属性,因为没设置标题,标题文本是没有创建的,所以这有先后顺序,例如Button的label也是一样的顺序,光只有以上代码,我们只能看到带标题党窗口,但是标题位置和关闭按钮位置都不对,我们调整一下。
_win.closeBtn.right = 0;//靠右布局
_win.closeBtn.y = 0;
_win.title.y = 2;
_win.title.width = _win.width;
_win.title.align = "center";没难度,再送一个功能,窗口可拖动,设置canDrag属性
//窗口可以拖动
_win.canDrag = true;
_win.dragRange = int.MAX_VALUE;
_win.title.mouseEnabled = false;//避免title挡住玩点别的花样,换行窗口的皮,很简单,上次说过,有皮肤的组件在构造函数里面都有skin参数,传入skin参数即可,当然,不传入,在外部设置skin属性也可以,但是告诉大家一个效率的问题,因为skin内部不做延迟处理,一旦赋值马上就会执行皮肤解析,所以大家最好还是从构造函数传入,否则构造函数传如一个null内部生成默认主题皮肤,外部又设置了另外一个皮肤,这skin的解析就执行了两次。
var vec:Vector.<BitmapData> = new Vector.<BitmapData>;
vec.push(closeBtn_upBitData,closeBtn_overBitData);
_otherWin = new GYTitleWindow(new TitleWindowSkin(
                uiBitData,
                (GYSprite.skinTheme as GYSkinTheme).sizeRect20_20_50_20,
                new ButtonSkin(vec)));
s.addChild(_otherWin);
_otherWin.setTitle("win7窗口");
_otherWin.title.color = 0;
_otherWin.x = 20;
_otherWin.y = 20;
_otherWin.width = 400;//记得设置宽高,要不啥都看不见,因为宽高默认是0
_otherWin.height = 400;如上代码,很简单,new一个ITitleWindowSkin传入即可,3个参数,背景,九宫格(上面直接使用主题的了),关闭按钮的皮肤
页: [1]
查看完整版本: 羔羊引擎之TitleWindow(带标题窗口)

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)