-1

我有一个需要从中获取图像的代码。我有一行想要从 API 调用中获取的图像。我不知道如何获得它。

这是我得到我的行的地方

Ti.Facebook.requestWithGraphPath(Titanium.App.Properties.getString("pageID") +'/feed',     {access_token: Token}, 'GET', function(e){
    if (e.success) {

        json = JSON.parse(e.result);
for (i = 0; i < json.data.length; i++) {
    data = json.data[i];
    row = Ti.UI.createTableViewRow({
        height:'80dp',
         // backgroundImage : 'images/tablebgl.png',
        backgroundColor: 'transparent',
        separatorColor:'transparent',
    });
row.coverid = data.from.id;     

var coverid = row.coverid;  

   Titanium.App.Properties.setString("cv", coverid);

    var imag = Ti.UI.createImageView();
row.add(imag);
require('image').get.signUpConn(data, function(scrollView){ 
imag.setImage(scrollView);
});

这是我的“image.js”

exports.signUpConn = function(data, callback) {
    var scrollView = Ti.UI.createView({
        top : 0,
        right : -1,
        left : -1,
        backgroundColor : 'transparent',
        width : '95%',
        contentWidth : 'auto',
        contentHeight : 'auto',
        layout : 'horizontal'
    });

    var url = "https://graph.facebook.com/" + Titanium.App.Properties.getString("cv") + "?fields=cover";
    var loader = Titanium.Network.createHTTPClient();
    loader.onload = function(data) {
        var data = JSON.parse(this.responseText);
        var images = [];
        for (var c = 0; c < 1; c++) {
            images[c] = {
                image : data.cover.source,
                width : 300
            };

        }
        function square(i) {
            var view = Ti.UI.createImageView({
                image : images[i].image,
                width : 300,
                height : 111,
                top : 5,
            });
            return view;
        }

        for (var i = 0; i < 1; i++) {
            scrollView.add(square(i));
        }

    }
    callback(scrollView);
    loader.open("GET", url);
    loader.send(data);

}

所以我猜错误必须在函数和/或回调中。

图像将在“scrollView”中。

当涉及到函数和回调时,我一团糟。

这是我得到的错误:

Script Error = 'undefined' is not an object (evaluating 'require('image').get.signUpConn')

谢谢。

4

1 回答 1

0

您的代码有多个语法错误(Facebook 请求,大量缺少括号),但您引用的错误是因为:

require('image').get.signUpConn(data, function(scrollView){ 
    imag.setImage(scrollView); // Why do you need this here? 
});

它需要是这样的,不需要get

require('image').signUpConn(data, function(scrollView){ 
    imag.setImage(scrollView);
});

但这是一个更深层次的问题,callback在图像加载到image.js. 另外,你为什么要创建scrollView(这只是一个常规视图)并通过回调传递它?为什么你有一个只循环一次的 for 循环?

看起来要部分解决这个问题,将 scrollView 移到所有这些之外,将images数组传递给回调,然后使用你的 square 函数在回调中添加图像,如下所示:

require('image').signUpConn(data, function(images){ 
    for(var i = 0;i<images.length;i++) {    
        scrollView.add(square(image[i]);
    }
});

您还必须在 square 函数中更改一些内容。

于 2013-01-12T19:29:27.830 回答