Online Test: http://wwwcn.myspace.cn/1307696709
Online Source: http://www.moorwind.com/as3app/spacehammer/srcview/index.html
一、MDP(Myspace开放平台)新特性--SWF托管
新 的HTML容器提供了SWF托管功能,方便大家把flash文件嵌入到页面中。这样Flash结合RESTful接口和Opensocial接口更加方 便:即使用Flash本地调试只需使用自己的UserID,传到Myspace上后再调用Opensocial获取Owner/Viewer ID,然后传入SWF中。
二、游戏源文件
1、源文件结构
下载并且解压源文件http://myspacesample.googlecode.com/files/spacehammer.rar后,源文件由SpaceHammer.FLA、SpaceHammer.as与com文件夹组成。其中SpaceHammer.FLA为游戏界面,SpaceHammer.as为主函数,com文件夹为源代码包。 很简单的一个业余时间练手作品,并不复杂。
SpaceHammer.FLA --界面源文件由Movies、Opinion、Props、Sounds四个文件夹组成,分别为游戏动画、游戏设置界面、游戏道具和游戏音乐。为减少文 件体积,游戏使用音频资源较少。部分设想中的功能尚未完成,所有有不少道具并未使用。
SpaceHammer.as -- SpaceHammer.FLA的document class(文档类)。
2、包结构
package com.moorwind.spacehammer.data -- Value Object
package com.moorwind.spacehammer.events -- 事件类
package com.moorwind.spacehammer.props -- 道具控制
package com.moorwind.spacehammer.utils -- 一些工具类
3、SWF与Javascript Opensocial交互
本例中只是从Opensocial接口获取OwnerID传递给SWF,有SWF调用RESTful接口获取该OwnerID的朋友数据:
function init()
{
var os = opensocial.Container.get();
var dataReqObj = os.newDataRequest();
dataReqObj.add(os.newFetchPersonRequest(opensocial.DataRequest.PersonId.OWNER));
dataReqObj.send(onGetOwner);
}
function onGetOwner(response)
{
if(response.hadError())
{
//
}
else
{
var owner = response.get(opensocial.DataRequest.PersonId.OWNER).getData();
ownerid = owner.getId();
outputSWF(ownerid);
}
}
function outputSWF(userid)
{
var so = new SWFObject("http://b0.ac-images.cdnmyspace.cn/cnimages01/1/l_d51ae1a776ec890fcdeb0b75b11397ea.swf", "space_hammer_player", "498", "320", "9.0.0", "#DFC486");
so.addParam("allowScriptAccess", "always");
so.addVariable("userid",userid);
so.write("spaceHammer");
}
4、源文件下载:
http://myspacesample.googlecode.com/files/spacehammer.rar