0

A 有几个带有 WebViews 的视图。我需要在coverFlowView 中制作它。为此,我将我的视图设置为图像,放在coverFlow 之后,但问题是我得到的图像未加载webView...我试图设置setTimeout,但它没有帮助。

var cover = Titanium.UI.iOS.createCoverFlowView({
    images: forflowImages
});
for (var k = start; k < cData.length; k++) {
r = Ti.UI.createView({});
for (var j = 0; j < child.objects.length; j++) {
    tmp = Ti.UI.createWebView({
        left : 10,
        top : 10,
        right : 10,
        bottom : 10,
        width : Ti.UI.FILL,
            height : Ti.UI.SIZE,
        willHandleTouches: true,
        backgroundColor : '#fff2df',
    });
    tmp.html = obj.html;
    no.add(tmp);
    r.add(no);
    }
}
r.addEventListener("load", function(e) {
        blob = r.toImage();
    });
    forflowImages.push(blob);   
}
cover.setImages(forflowImages); 

使用此代码,coverFlowView 没有任何视图。

setTimeout(function() {
        blob = r.toImage();
    }, 500);

也没有帮助,我在页面上保存了活动指示器,在 toImage 函数起作用之前,内容似乎没有时间加载。

4

1 回答 1

0

您以错误的方式订购事物,并且有多个语法错误,并且您正在侦听load错误类型的视图上的事件,您应该在 WebView 上侦听,请尝试以下操作:

var forflowImages = [];
var container = // This should already be in the view stack somewhere
var cover = Titanium.UI.iOS.createCoverFlowView();
function loadListener(e) {
    forflowImages.push(e.source.toImage()); 
    if(forFlowImages.length == child.objects.length) {
        // We have all the images for cover flow
        cover.setImages(forflowImages);
    }
}

var containerView = Ti.UI.createView();
for (var j = 0; j < child.objects.length; j++) {
    var tmp = Ti.UI.createWebView({html : obj.html);
    tmp.addEventListener("load", loadListener);
    container.add(tmp);
    tmp.repaint();
}

我删除了一些语法不正确的代码并将其修剪下来,以便于理解。这段代码所做的只是添加一个事件监听器来处理 webview 到图像的转换。

于 2013-09-09T13:01:00.113 回答