Egret社区

对象显示的问题

2014-7-8 16:09
14925
我写了一个继承DisplayObjectContainer的类,这个类里面有很多位图和文本资源,
最开始的时候当该类触发ADDED_TO_STAGE事件时,我调用onAddToStage函数,然后在函数里面
创建各个资源的对象(摆放位置啊,事件绑定啊等等),并添加到容器中,测试时没有问题,但是后来发现,如果场景切换,
每次进入这个类对应的场景都要调用onAddToStage函数,那么每次都要重新生成一遍对象,所以
我将对象创建的行为放到了另一个函数中,并且在这个类的构造函数里面调用。
结果测试发现,所有的图像资源都没有被显示出来,这个问题不知道是什么原因造成的,难道一定要在onAddToStage的时候创建并添加
对象吗?如何只加载一次资源,多次使用?还望高手解答~~
分享到 :
0 人收藏

5 个回复

倒序浏览
张宇  官方团队 | 2014-7-8 16:20:54
放在构造函数里肯定没问题。不显示估计是逻辑有问题。请放代码
dom  圆转纯熟 | 2014-7-8 16:22:40
难道一定要在onAddToStage的时候创建并添加
对象吗?

不是,你自己调试下,应该是其他的问题。你最初的方式如果是正确显示的。那你可以按如下方式改实现你的需求:
声明一个private hasCreated:boolean = false;属性。
在第一次进入onAddToStage()的时候,创建对象。并把hasCreated标记为true,下次再进入onAddToStage()时直接return掉。就不会重复创建了。
dom  圆转纯熟 | 2014-7-8 16:25:08
dom 发表于 2014-7-8 16:22
不是,你自己调试下,应该是其他的问题。你最初的方式如果是正确显示的。那你可以按如下方式改实现你的需 ...

或者,你应该在进入onAddToStage()后,使用removeEventListener()把事件监听移除。这样也能防止再次进入onAddToStage()
limbo  初学乍练 | 2014-7-8 16:29:52
dom 发表于 2014-7-8 16:25
或者,你应该在进入onAddToStage()后,使用removeEventListener()把事件监听移除。这样也能防止再次进入o ...

这个应该是不行的,每次进入的时候我都要更新一部份信息,移除这个事件,就不能更新了。
limbo  初学乍练 | 2014-7-8 16:33:54
dom 发表于 2014-7-8 16:22
不是,你自己调试下,应该是其他的问题。你最初的方式如果是正确显示的。那你可以按如下方式改实现你的需 ...

办法是好办法,其实我是想弄清楚为什么,而不是绕过去,可能就像2L说的,是程序逻辑的问题吧,这个我再看看。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

返回顶部