SlideShare a Scribd company logo
1 of 19
主講人 :Jones
先來介紹遊戲吧~~
還是 呢
 
SF S 主要功能介紹 ‧ 專門為 Adobe Flash 設計的  Socket Server ‧ 主打多人線上遊戲 ‧ JAVA BASE  開發
SF S 支援 ‧ CLIENT 端  AS  支援 AS1, AS2, AS3 ‧ 作業系統支援 Windows, MacOS, Linux ‧ 其他程式語言
SF S 優點 ‧ 便宜 , 簡單 , 又好用
SF S 價錢與分類 ‧ 上限 20  人  試用版免費 ‧ 上限 100 人  500 €   ( 歐元 )  =  20500$( 台幣 )   ‧ 上限 500 人  1000 €   ( 歐元 )  =  41000$( 台幣 ) ‧ 無上限  2000 €  ( 歐元 )  =  82000$( 台幣 ) 主機夠強再說 ‧ Flash Media Server 4500(USD) = 144000( 台幣 )
SF S 架構
 
SF S 管理者介面
SF S  AS3 API 功能概略 it.gotoandplay.smartfoxserver Classes   -SmartFoxClient -SFSEvent it.gotoandplay.smartfoxserver.data Classes -Room -User
不來梅大亂鬥程式概述
config.xml 設定 <SmartFoxConfig> <ServerSetup> <ServerIP>*</ServerIP> <ServerPort>9339</ServerPort> …………… </ServerSetup> <Zones> <Zone name=&quot;bomberman&quot; emptyNames=&quot;true&quot;> <Rooms> <Room name=&quot;Chicken&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Cat&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Dog&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot; /> <Room name=&quot;Donkey&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Lobby&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> </Rooms> <Zone> <Zones> </SmartFoxConfig>
登入 import it.gotoandplay.smartfoxserver.* var sfs:SmartFoxClient = new SmartFoxClient(); sfs.addEventListener(SFSEvent.onConnection, onConnectionHandler) sfs.addEventListener(SFSEvent.onLogin, onLoginHandler) sfs.connect(&quot;127.0.0.1&quot;,9339); function onConnectionHandler(e:SFSEvent){ if (e.params.success){ trace(&quot; 連線成功 &quot;); sfs.login (&quot;bomberman&quot; ,   &quot;myName&quot;,&quot;&quot;);// 登入 }else{ trace(&quot; 連線失敗 &quot;); } } function onLoginHandler(e:SFSEvent){ trace(&quot; 登入成功 &quot;); }
房間選擇 Event Ex:sfs.addEventListener( 偵聽事件 ,  函式 ) SFSEvent.onRoomListUpdate    當房間列表更新 SFSEvent.onUserCountChange    當玩家數量更新 SFSEvent.onJoinRoom   當自己進入某房間 SFSEvent.onUserEnterRoom    當有人進來我房間 SFSEvent.onJoinRoomError    當自己進入某房間失敗 SFSEvent.onUserLeaveRoom   當有人從我房間離開 SFSEvent.onRoomAdded    當新房間建立 SFSEvent.onRoomDeleted    當新房間移除 SFSEvent.onCreateRoomError    當新房間建立失敗 SFSEvent.onConnectionLost    當連線失效時 SFSEvent.onObjectReceived    當有人傳送 Object 給大家 SFSEvent.onUserVariablesUpdate  當玩家參數變更 ( 座標位置 , 屬性 , 等等等字串 ) sfs.getRoomList();// 取得房間列表 sfs.joinRoom(RoomID);// 進入房間 容易混淆
人物移動 sfs.addEventListener( SFSEvent.onUserVariablesUpdate , getVariables) function getVariables(evt:SFSEvent) { var mcName=evt.params.user.getName(); var mc=this.getChildByName(mcName); mc.x=int(evt.params.user.getVariable(&quot;px&quot;)); mc.y=int(evt.params.user.getVariable(&quot;py&quot;)); } var posi:Object = new Object(); posi.px=mc.x; posi.py=mc.y; sfs.setUserVariables(posi); 移動
炸彈爆炸 sfs.addEventListener( SFSEvent.onRoomVariablesUpdate ,getRoomVariables); function getRoomVariables (evt:SFSEvent):void { for (var v:String in changedVars) { if(v == &quot; bombfire&quot;) zone=JSON.decode(evt.params.room.getVariable(v)); ……………… } } } var mcobj:Object=new Object(); mcobj.power=2; mcobj.px=bomb.x; mcobj.py=bomb.y; mcobj.name=mc.name; var mcstr:String=JSON.encode(mcobj); var mcVars:Array = new Array(); mcVars.push({ name:“bombfire&quot;, val:mcstr }); sfs.setRoomVariables( mcVars );
Thank you !

More Related Content

Similar to Smart fox簡報

Javascript Training
Javascript TrainingJavascript Training
Javascript Trainingbeijing.josh
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当裕波 周
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Enginejay li
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快li qiang
 
Behind Tetris5
Behind Tetris5Behind Tetris5
Behind Tetris5Junwen Sun
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsChieh Lin
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)RANK LIU
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 reviewleneli
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验QLeelulu
 
Mongodb
MongodbMongodb
Mongodbbj
 
YUI ─ 阿大
YUI ─ 阿大YUI ─ 阿大
YUI ─ 阿大taobao.com
 
程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號鍾誠 陳鍾誠
 
程式人雜誌 2015年五月
程式人雜誌 2015年五月程式人雜誌 2015年五月
程式人雜誌 2015年五月鍾誠 陳鍾誠
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methodsyiditushe
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐zhangsuoyong
 
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mu-Fan Teng
 
Flex 4.5 action data communication
Flex 4.5 action data communicationFlex 4.5 action data communication
Flex 4.5 action data communicationjexchan
 

Similar to Smart fox簡報 (20)

Javascript Training
Javascript TrainingJavascript Training
Javascript Training
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
JavaScript Engine
JavaScript EngineJavaScript Engine
JavaScript Engine
 
让我们的页面跑得更快
让我们的页面跑得更快让我们的页面跑得更快
让我们的页面跑得更快
 
Behind Tetris5
Behind Tetris5Behind Tetris5
Behind Tetris5
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
Asm+aix
Asm+aixAsm+aix
Asm+aix
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
Mongodb
MongodbMongodb
Mongodb
 
YUI ─ 阿大
YUI ─ 阿大YUI ─ 阿大
YUI ─ 阿大
 
程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號
 
程式人雜誌 2015年五月
程式人雜誌 2015年五月程式人雜誌 2015年五月
程式人雜誌 2015年五月
 
Osgi Intro
Osgi IntroOsgi Intro
Osgi Intro
 
Ajax Transportation Methods
Ajax Transportation MethodsAjax Transportation Methods
Ajax Transportation Methods
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
Mopcon2014 - 使用 Sinatra 結合 Ruby on Rails 輕鬆打造完整 Full Stack 網站加 API Service服務
 
Flex 4.5 action data communication
Flex 4.5 action data communicationFlex 4.5 action data communication
Flex 4.5 action data communication
 

Smart fox簡報

  • 4.  
  • 5. SF S 主要功能介紹 ‧ 專門為 Adobe Flash 設計的 Socket Server ‧ 主打多人線上遊戲 ‧ JAVA BASE 開發
  • 6. SF S 支援 ‧ CLIENT 端 AS 支援 AS1, AS2, AS3 ‧ 作業系統支援 Windows, MacOS, Linux ‧ 其他程式語言
  • 7. SF S 優點 ‧ 便宜 , 簡單 , 又好用
  • 8. SF S 價錢與分類 ‧ 上限 20 人 試用版免費 ‧ 上限 100 人 500 € ( 歐元 ) = 20500$( 台幣 ) ‧ 上限 500 人 1000 € ( 歐元 ) = 41000$( 台幣 ) ‧ 無上限 2000 € ( 歐元 ) = 82000$( 台幣 ) 主機夠強再說 ‧ Flash Media Server 4500(USD) = 144000( 台幣 )
  • 10.  
  • 12. SF S AS3 API 功能概略 it.gotoandplay.smartfoxserver Classes -SmartFoxClient -SFSEvent it.gotoandplay.smartfoxserver.data Classes -Room -User
  • 14. config.xml 設定 <SmartFoxConfig> <ServerSetup> <ServerIP>*</ServerIP> <ServerPort>9339</ServerPort> …………… </ServerSetup> <Zones> <Zone name=&quot;bomberman&quot; emptyNames=&quot;true&quot;> <Rooms> <Room name=&quot;Chicken&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Cat&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Dog&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot; /> <Room name=&quot;Donkey&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> <Room name=&quot;Lobby&quot; maxUsers=&quot;4&quot; isPrivate=&quot;false&quot; isTemp=&quot;false&quot; autoJoin=&quot;true&quot;/> </Rooms> <Zone> <Zones> </SmartFoxConfig>
  • 15. 登入 import it.gotoandplay.smartfoxserver.* var sfs:SmartFoxClient = new SmartFoxClient(); sfs.addEventListener(SFSEvent.onConnection, onConnectionHandler) sfs.addEventListener(SFSEvent.onLogin, onLoginHandler) sfs.connect(&quot;127.0.0.1&quot;,9339); function onConnectionHandler(e:SFSEvent){ if (e.params.success){ trace(&quot; 連線成功 &quot;); sfs.login (&quot;bomberman&quot; , &quot;myName&quot;,&quot;&quot;);// 登入 }else{ trace(&quot; 連線失敗 &quot;); } } function onLoginHandler(e:SFSEvent){ trace(&quot; 登入成功 &quot;); }
  • 16. 房間選擇 Event Ex:sfs.addEventListener( 偵聽事件 , 函式 ) SFSEvent.onRoomListUpdate  當房間列表更新 SFSEvent.onUserCountChange  當玩家數量更新 SFSEvent.onJoinRoom  當自己進入某房間 SFSEvent.onUserEnterRoom  當有人進來我房間 SFSEvent.onJoinRoomError  當自己進入某房間失敗 SFSEvent.onUserLeaveRoom  當有人從我房間離開 SFSEvent.onRoomAdded  當新房間建立 SFSEvent.onRoomDeleted  當新房間移除 SFSEvent.onCreateRoomError  當新房間建立失敗 SFSEvent.onConnectionLost  當連線失效時 SFSEvent.onObjectReceived  當有人傳送 Object 給大家 SFSEvent.onUserVariablesUpdate  當玩家參數變更 ( 座標位置 , 屬性 , 等等等字串 ) sfs.getRoomList();// 取得房間列表 sfs.joinRoom(RoomID);// 進入房間 容易混淆
  • 17. 人物移動 sfs.addEventListener( SFSEvent.onUserVariablesUpdate , getVariables) function getVariables(evt:SFSEvent) { var mcName=evt.params.user.getName(); var mc=this.getChildByName(mcName); mc.x=int(evt.params.user.getVariable(&quot;px&quot;)); mc.y=int(evt.params.user.getVariable(&quot;py&quot;)); } var posi:Object = new Object(); posi.px=mc.x; posi.py=mc.y; sfs.setUserVariables(posi); 移動
  • 18. 炸彈爆炸 sfs.addEventListener( SFSEvent.onRoomVariablesUpdate ,getRoomVariables); function getRoomVariables (evt:SFSEvent):void { for (var v:String in changedVars) { if(v == &quot; bombfire&quot;) zone=JSON.decode(evt.params.room.getVariable(v)); ……………… } } } var mcobj:Object=new Object(); mcobj.power=2; mcobj.px=bomb.x; mcobj.py=bomb.y; mcobj.name=mc.name; var mcstr:String=JSON.encode(mcobj); var mcVars:Array = new Array(); mcVars.push({ name:“bombfire&quot;, val:mcstr }); sfs.setRoomVariables( mcVars );