使用 Grails 构建富 Internet 应用程序,第 1 部分: 使用 Grails 和 Flex 构建 Web 应用程序
2009-11-19 00:00:00 来源:WEB开发网清单 6 给出了 Story 类的基础内容。它具有几个与您将从服务获取的数据结构对应的字段。这个构造器采用一个可选的 XML 对象,并通过这个对象填充字段。您可能已经看到,访问 XML 数据的语法非常简单。ActionScript 将 E4X 标准实现为处理 XML 的简化方式。这类似于 XPath,但使用对面向对象编程语言更加自然的语法。此外,每个属性都使用 [Bindable] 修饰。这是一个 ActionScript 注释。它允许将 UI 组件绑定到字段,以在字段发生变更时自动更新 UI。最后需要注意的是静态变量 listStoriesLoader。这是 URLLoader 的一个实例,即用于发送 HTTP 请求的 ActionScript 类。Story 类中的一个静态方法使用它通过 API 加载所有新闻。如清单 7 所示。
清单 7. 列出 Stories 方法public class Story extends EventDispatcher
{
public static function list(loadHandler:Function, errHandler:Function=null):void
{
var req:URLRequest = new URLRequest(LIST_URL);
listStoriesLoader = new URLLoader(req);
dispatcher.addEventListener(DiggEvent.ON_LIST_SUCCESS, loadHandler);
if (errHandler != null)
{
dispatcher.addEventListener(DiggEvent.ON_LIST_FAILURE, errHandler);
}
listStoriesLoader.addEventListener(Event.COMPLETE, listHandler);
listStoriesLoader.addEventListener(IOErrorEvent.IO_ERROR, listErrorHandler);
listStoriesLoader.load(req);
}
private static function listHandler(e:Event):void
{
var event:DiggEvent = new DiggEvent(DiggEvent.ON_LIST_SUCCESS);
var data:Array = [];
var storiesXml:XML = XML(listStoriesLoader.data);
for (var i:int=0;i<storiesXml.children().length();i++)
{
var storyXml:XML = storiesXml.story[i];
var story:Story = new Story(storyXml);
data[data.length] = story;
}
event.data = data;
dispatcher.dispatchEvent(event);
}
}
更多精彩
赞助商链接