Egret社区
10银子
本帖最后由 DoDoBooM 于 2018-11-12 16:23 编辑

TIM图片20181107141554.png 继承eui.Component的类,exml里width 是100,分别在其childrenCreated和partAdded和Tap事件里打印自己的width。
在main函数里实例化一个PuzzlePiece的对象将其添加到舞台上后也打印它的width
打印结果如下:

TIM图片20181107141226.png


想问的问题是,到底在什么时候才能获取到这个对象正确的width/height值?
--------------------------------------------------------------------
新增AddToStage的事件 打印出来的也是0
TIM图片20181109150457.png
----------------------------------------------------------------------
PuzzlePiece的exml
TIM图片20181109155208.png
TIM图片20181109155204.png
--------------------------------
2018 11 12 修改exml的class 和 ts类的skinName
1542010876(1).png
TIM图片20181112162036.png


分享到 :
0 人收藏

17 个回复

倒序浏览
w695486538  登堂入室 | 2018-11-7 14:57:36 来自手机
直接打印就获取到了。
DoDoBooM  登堂入室 | 2018-11-7 15:19:17
w695486538 发表于 2018-11-7 14:57
直接打印就获取到了。

前三个打印出来的值都是0啊,而实际上是100。
最后一个打印出来的值是正确的,可是这个打印是通过点击事件触发的。正式代码里不可能这么写的。
w695486538  登堂入室 | 2018-11-7 15:23:29 来自手机
DoDoBooM 发表于 2018-11-7 15:19
前三个打印出来的值都是0啊,而实际上是100。
最后一个打印出来的值是正确的,可是这个打印是通过点击事 ...

很好奇你的创建方法是怎样的,我是直接创建eui组件,然后打印出来的值是设置好的。
didy007  圆转纯熟 | 2018-11-8 16:14:49
有没有试试 this.addEventListener(egret.Event.ADDED_TO_STAGE,()=>{console.log("addStage:"+this.width)},this);
冰湖  官方团队 | 2018-11-8 17:47:21
当对象添加到舞台之后打印的才是正确的值,前几个方法是异步的,有可能当前对象并没有添加到舞台上所以可能会打印不出正确的值
DoDoBooM  登堂入室 | 2018-11-9 15:03:15
冰湖 发表于 2018-11-8 17:47
当对象添加到舞台之后打印的才是正确的值,前几个方法是异步的,有可能当前对象并没有添加到舞台上所以可能会 ...

那有对象添加到舞台之后的回调 或者事件吗?
DoDoBooM  登堂入室 | 2018-11-9 15:06:16
didy007 发表于 2018-11-8 16:14
有没有试试 this.addEventListener(egret.Event.ADDED_TO_STAGE,()=>{console.log("addStage:"+this.width) ...

试过了,还是0
冰湖  官方团队 | 2018-11-9 15:49:02
DoDoBooM 发表于 2018-11-9 15:03
那有对象添加到舞台之后的回调 或者事件吗?

看看你的eui.lable怎么创建的.截图eui属性面板
DoDoBooM  登堂入室 | 2018-11-9 15:53:29
冰湖 发表于 2018-11-9 15:49
看看你的eui.lable怎么创建的.截图eui属性面板

已编辑上了,请过目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部