Egret社区
1银子
我现在有一个 Widget.MyGroup.ts 继承自 egret.gui.Group,我自己加了几个方法,比如addItem, startPlay等。
然后在一个scene的exml文件中,我建了<e:Group id="testGroup" .. />,我怎么让这个e:Group就指定为Widget.MyGroup

这样我在scene的ts文件中就可以直接this.testGroup.addItem(..)这样了。

最佳答案

查看完整内容

首先要确保你的sence的exml和sence的ts是相对应的。 即一个是皮肤组件,一个是逻辑组件。 同时指定sence的skinName为那个exml文件。 保证你皮肤组件中的部件ID和类型与逻辑组件中的变量名和类型一致。 在逻辑组件中的partAdded方法中判断是否部件绑定成功。 成功之后就可以调用了。 详细教程参考:http://edn.egret.com/cn/index.php/article/index/id/272 ...
分享到 :
0 人收藏

6 个回复

倒序浏览
featherJ  官方团队 | 2015-8-12 14:46:59
首先要确保你的sence的exml和sence的ts是相对应的。  即一个是皮肤组件,一个是逻辑组件。
同时指定sence的skinName为那个exml文件。
保证你皮肤组件中的部件ID和类型与逻辑组件中的变量名和类型一致。
在逻辑组件中的partAdded方法中判断是否部件绑定成功。  成功之后就可以调用了。
详细教程参考:http://edn.egret.com/cn/index.php/article/index/id/272
featherJ  官方团队 | 2015-8-12 15:38:35
题外话。 如果你这个sence是游戏逻辑的话。 不建议用GUI来实现。 GUI是专门为游戏中的用户界面而准备的,并不是为游戏逻辑准备的。  
如果你想研究GUI,还是建议按照教程一部一部走 http://edn.egret.com/cn/index.php/article/index/id/247  这里面你想要的基本都有讲到的。
guoerwei  登堂入室 | 2015-8-12 15:50:36
featherJ 发表于 2015-8-12 15:38
题外话。 如果你这个sence是游戏逻辑的话。 不建议用GUI来实现。 GUI是专门为游戏中的用户界面而准备的,并 ...

我的想法是这样的,比如我现在是要做一个卡牌游戏。可以想象成斗地主。

这样有一个scene就是牌桌,上面用exml规划好了整个界面。其中每个人手上不是有几张牌么,这边我想在exml里用一个自定义的gui.Group来预留,比如MyGroup。然后在MyGroup.ts里加入addCard(),clear()等方法来操作这个玩家手里的牌。通过游戏逻辑来调用这个gui进行操作。这种思路应该正确吧,求指导。

另外,问题解决,稍候结帖。

<comps:StateButton upSkinName="button_up" downSkinName="button_down" disabledSkinName="button_disabled"/>
确实就是忘了教程里有过这个,可以用一个自定义的命名空间再引入自定义的组件。
featherJ  官方团队 | 2015-8-12 16:01:44
你这个基本上就是属于游戏逻辑部分了。  GUI主要还是适用于用户界面部分,如:弹出一个菜单啊,游戏结束的时候显示的信息提示牌啊这些东西。
而游戏逻辑中并不推荐用GUI来实现,原因很简单,GUI的底层中有大量的代码是为了UI而设定的,这些代码在游戏逻辑中是很冗余的。 同时也会为游戏逻辑带来一定的性能开销。

所以在游戏中,你的显示对象要继承自Sprite来写。

这么说可以明白么?
guoerwei  登堂入室 | 2015-8-12 16:08:18
featherJ 发表于 2015-8-12 16:01
你这个基本上就是属于游戏逻辑部分了。  GUI主要还是适用于用户界面部分,如:弹出一个菜单啊,游戏结束的 ...

嗯,明白了。我重新想想~谢谢
featherJ  官方团队 | 2015-8-12 17:29:44
客气  :)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

guoerwei

登堂入室

积分: 17 帖子: 10 精华: 0

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部