0

我正在编写一个移动应用程序,用户可以在其中将成分与食谱相匹配。我偶然发现了http://www.recipepuppy.com/about/api/它提供了一个非常简单的 API,可以通过逗号分隔的成分进行搜索,例如:

http://www.recipepuppy.com/api/?i=onions,garlic&format=xml

我将各种成分存储在共享对象中,如下所示:

so.data.meat1 = "beef"
so.data.meat2 = "chicken"
so.data.meat3 = "lamb"
so.data.veg1 = "green beans"
etc etc..

我对 AS3 完全陌生,所以我真的不知道可以实现这一点的主要方法/类。

那么 1. 如何将我的共享对象的数据传递到上面的食谱小狗 url 的查询字符串中?2. 如何将 XML 结果加载到数据网格或类似组件中?

编辑:这是我到目前为止所得到的:

var url : String = 'http://www.recipepuppy.com/api/';

            // url variables all which will appear after ? sign
            var urlVariables : URLVariables = new URLVariables ();
                urlVariables['i'] = so.data.meat1;
                urlVariables['i'] = so.data.meat2;
                urlVariables['format'] = "xml";
                // here you can add as much as you need

            // creating new URL Request
            // setting the url
            var request : URLRequest = new URLRequest  ( url );
                // setting the variables it need to cary
                request.data = urlVariables;
                // setting method of delivering variables ( POST or GET )
                request.method = URLRequestMethod.GET;

            // creating actual loader
            var loader : URLLoader = new URLLoader ();
                loader.load ( request );
                trace(request.data);

它运行良好,但我当前的 urlVariables['i'] 设置只允许我指定一个 'i' 变量,如何为 'i' 变量指定多个变量值?

4

1 回答 1

1

好的,对于一个答案,我需要增强它:)

首先,您应该将成分作为数组存储在 SO 中,如此处所示SharedObject#data

so.data.ingredients = ["beef","chicken","lamb"];

然后你可以将它传递给 urlVariables:

urlVariables['i'] = so.data.ingredients.join();

当然,如果 so.data.ingredients 存在,我会添加一些测试来避免抛出任何错误,

于 2013-04-29T07:31:39.600 回答