正文

[转帖]flash网络应用资料2006-03-30 15:06:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/chuangyi/11630.html

分享到:

flash网游开发日志 本文是本人学习flash网络应用的过程,源码、说明陆续推出;先做一下自我介绍,为想学的朋友好上手;Flash 2004 MX学习了45天,包含AS语法在内;Flash Communication学习了10天;Flash Remoting看了一点点资料,没学; C#学习语法10天;Bc,十五年前看过5天资料,没学成,呵;C和Vc和Bc一样十五年前看过资料,学不下去;VB十五年前看过一阵子资料,写过几个非常简单的程序,现在忘得一干二净;ASP学习加应用共十年左右,应该说相当熟悉;SQL也还行,数据库总不能说不会吧,呵;Javascript呢还行,强强牛牛的东西做不来,正常东西都可写;其它一些做图软件都会用,不能说会做图; 电脑硬件非常熟,以前做这行的,呵好像和这个关系不大,其实有点关系,因为对操作系统和硬件搭配后的性能心里有底,对自已要开发面向的用户群使用的机器做一个分析,这样自已开发出来的flash运算强度和美工强度,flash多大都有很直接的关系,因为机器好的人都去玩3D了; 举例说一下:Flash做游戏,面向用户是一般机器的,这此人的机器不会是非常好,所以他们所能玩的游戏画面都一般,因为好的画面,他们的机器跑不动,显示器大小,现在基本是15、17,机器一般显示器就不会太好,所以上1024应该有困难,再说上了后,如果flash按1024做机器运行就很吃力,所以我们按800*600做。 引言 因为一直写的是asp,重来没有写过桌面应用程序,所以写桌面程序一直是我的梦想。开发游戏更不用说,因为学电脑的原因就是因为玩游戏,玩得多了就觉得没意思,就想开发给别人玩,后来发现自已一个人是做不来的,所以就放弃了,这样就走进了编程这个行当(十几年前的事,呵,想想还算好,起码选对了,现在就靠这个吃饭呀)。因为有点点VB知识,所以学ASP很快,就一直写这个,写了十多年。 开发娱乐项目对小团体和个人开发来说是难度最大的,因为涉及方面多广,所以想学编程最好选这个来上手,学习东西必须要能提起你的兴趣才会坚持下去,开发娱乐项目是我的兴趣,因为也涉及方面多广,所以写完,基本就搞定这门语言了。原由:前面说过我的梦想,但一直没有做过,万事需要一个起因,公司的外部网站有一个flash,因为公司变动需要改,原改过一次,因为不懂,所以一改就需要找别人,我是最讨厌去求人的,这次又要变,所以就马上学flash,本来flash就不难,所以一下就搞定了。改完后发现flash的语言和Javascript很像,网上flash游戏很多,兴趣来了,公司年终有晚会,需要一个抽奖程序,用别的语言写有点麻烦,因为画面效果问题,用flash是最简答的,所以借这个学习flash语法,写完这个,加做美工45天,搞定flash了。接着我对flash的兴趣就很大了,想做游戏,我知道flash可以和asp通讯,但效果不好,在网上查资料,发现了:Flash CommunicationFlash Remoting 这两个东西,是做flash网络应用的,好做网游有希望了。我在flash8发过贴,问Flash Communication、Flash Remoting做用,但这里好像做flash网络应用的人不多,没有得到答案,继续找,终于得到答案:Flash Communication是做视频会议、聊天等东西的、Flash Remoting是做与数据库通讯与存取的,知道要做什么用后,可以开始了。Flash Communication网上资料少得可怜,把网上搜便后,还用钱买了一本电子书《Flash Communication Server MX 1.5 参考大全》,可以开始着手写了。定位为回合游戏,如象棋、麻将这些,如QQgame;10天把框架搭好了,游戏大厅完成,但发现一个很大的问题:SharedObject用起来怎么都不爽;SharedObject说明:flash的一种存取数据库,可以存取比较简单的数据,Flash Communication就是与本地SharedObject进行通讯来完成网络应用。SharedObject语法很麻烦,再加上Flash Communication本身不成熟,老是有一些莫名奇妙的问题,可能一个是我对Flash Communication的原理了解得太少,所以碰到很多问题。为了自已的梦想,坚持着把与Flash Communication的通讯部分写完,登陆大厅都正常了,再望向就要与数据库通讯了,数据库我定在SQL,Flash Communication本身不能操作数据库,所以有了Flash Remoting这么一个东西; 天呀,又得学Flash Remoting,这个网络的资料也是少得可怜,看资料说是和JAVA很像,可是我对JAVA是一点不懂,学JAVA太夸张了吧,所以开发开始挺住了。 为了自已的梦想实现,所以有空就上网看东西,原来在帝国BBS看到过自已写与FLASH通讯的服务器端文章,但我只会写ASP,别的不会,所以一直不太理会,后来经过考虑,如果要学Flash Remoting的语言,不如学。NET,因为一直没有时间学,二个是懒不想学,好,那么定位为C#,这个现在比较火,学的人多,十多年前一直想学C没有学成,现在终于可以逼迫自已去学了,因为找到理由了。本文为原创,其实我现在还在学习C#中,所以一边学一边写这个东西。 下面是我与Flash Communication通讯的一段代码,我个人感觉太麻烦,所以一直写都不爽SharedObject,我的AS语言刚学没有多久,可能下面的代码看起来比较丑,反正不用Flash Communication了,所以大家可以将就的看一下,不过如果要做视频会议等东西,还需要用到Flash Communication,所以学东西不会白学,以后用得到,呵。 //是否点GAME桌面 //table桌面 //channel频道 no_play = 0; no_one = 0; //桌的台号 var table_no; //桌面左右 var table_place; function run_program(str, str2, str3) { var game_so = SharedObject.getRemote("game_room", client_nc.uri, true); game_so.connect(client_nc); game_so.onSync = function() { //<2> //for (a in game_so.data) { // trace(a+": "+game_so.data[a]); //} //读GAME桌面 for (i=1; i<=4; i++) { dot_program(i); } //判断是否点GAME桌面 if (no_play == 1) { write_data(str, str2, str3); no_play = 0; } }; //<2> //========================================================= function dot_program(str) { //判断GAME桌面数据 //if (eval("game_so.data.play_name"+str) != null) { eval("_root.room_table.table_room.p"+str+"_u1").text = eval("game_so.data.play_room"+str+".play_name1"); eval("_root.room_table.table_room.p"+str+"_u2").text = eval("game_so.data.play_room"+str+".play_name2"); trace(eval("game_so.data.play_room"+str+".play_name1")); //} else { //eval("play_user"+str).text = ""; //} } //========================================================= function write_data(str, str2, str3) { //写空退出游戏 table_no = str; table_place = str2; if (eval("game_so.data.play_room"+str+".play_name"+str2) != "") { if (eval("game_so.data.play_room"+str+".play_name"+str2) == myname) { for (a in game_so.data) { if (a == "play_room"+str) { if (str2 == 1) { game_so.data[a].play_name1 = ""; } else { game_so.data[a].play_name2 = ""; } break; } } } goto_list(); } else { //写开始游戏 //eval("game_so.data.play_room"+str+".play_name2"); if ((eval("game_so.data.play_room"+str+".play_name1") != myname) && (eval("game_so.data.play_room"+str+".play_name2") != myname)) { for (a in game_so.data) { if (a == "play_room"+str) { if (str2 == 1) { game_so.data[a].play_name1 = myname; } else { game_so.data[a].play_name2 = myname; } break; } } play(); } } } } //run_program(); setInterval(run_program, 2000); More... -

阅读(3897) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册