附加图像和已加载....但getOffsetWidth / height仍然为零

时间:2016-03-09 23:05:07

标签: gwt

这些让我很困惑。 我有一个复合小部件包装一个带有以下加载处理程序集的Image;

ONLOADHANDLE = SceneObjectIcon.imageContents.addLoadHandler(new LoadHandler() {         
        @Override
        public void onLoad(LoadEvent event) {

            Scheduler.get().scheduleDeferred(new ScheduledCommand(){
                @Override
                public void execute() {

                    ObjectsLog("Size          ="+getObjectWidth()+","+getObjectHeight(),"green");            //0,0 
                    ObjectsLog("is Attached   ="+SceneObjectIcon.isAttached(),"green");                     //true
                    ObjectsLog("is Attached   ="+SceneObjectIcon.imageContents.isAttached(),"green");        //true                                             
                    ObjectsLog("offset        ="+SceneObjectIcon.imageContents.getOffsetWidth()+","+SceneObjectIcon.imageContents.getOffsetHeight(),"green");            //0,0  
                    ObjectsLog("image itself  ="+SceneObjectIcon.imageContents.getWidth()      +","+SceneObjectIcon.imageContents.getHeight(),      "green");        // works       

                    //remove handler so this wont fire on subsequent loads
                    ONLOADHANDLE.removeHandler();

                    //run other stuff
                    imageloaded();                      
                }                   
            });

        }

    });

注释;

SceneObjectIcon是一个扩展Composite的类。它包装了一个名为“imageContents”的Image对象,即只是;

initWidget(imageContents);

该类包含主要用于图像动画的功能。但是,这里没有使用。

ObjectsLog只是一个为我处理日志记录的类。考虑它就像Log.info等。

- 正如您所看到的,代码设置了一个延迟命令onLoad,后者又记录了刚刚加载的Image的大小。

然而,日志返回的“偏移”大小始终为0,0 - 尽管事实上两个“已附加”语句都返回true,并且仅在等待加载和浏览器之后触发。 但是,上一个日志语句中的图像大小正确地被拾取。

任何想法我可能做错了什么?

除了scheduleDeferred,我还尝试了scheduleFinnally和scheduleEntry,结果相同。

getOffsetWidth()应该何时可用,以及我尝试过的其他因素可能会影响无法得到结果?

我正在使用GWT 2.7,运行本地服务器进行测试,如果这有所不同。

0 个答案:

没有答案