Lambneck Posted October 6, 2008 Share Posted October 6, 2008 I got the following action script from a text but am having trouble understanding the details of what the book is instructing. It says to do the following in order to properly implement the script: • Change value of shared object property attribute (for example, text content). • Trigger SyncEvent.SYNC event due to change in the shared object msg data property. • Change local property values by user input and assignment to the TextArea component. • Change remote property values with shared object value. If anyone knows about shared objects and could //comment where these few changes need to be made I would be forever grateful. ActionScript: package { import fl.controls.TextArea; import fl.controls.Button; import fl.controls.TextInput; import flash.display.Sprite; import flash.events.SyncEvent; import flash.events.NetStatusEvent; import flash.events.MouseEvent; import flash.events.FocusEvent; import flash.net.SharedObject; import flash.net.NetConnection; import fl.events.ComponentEvent; public class TextChat extends Sprite { private var button:Button; private var text_so:SharedObject; private var nc:NetConnection; private var textArea:TextArea; private var textInput:TextInput; private var chatName:TextInput; private var rtmpGo:String; private var good:Boolean; private var catchKey:Boolean; private var noName:Boolean; public function TextChat() { //Set up UIs textArea=new TextArea(); textArea.setSize(500,280); textArea.move(20,54); addChild(textArea); textInput=new TextInput(); textInput.setSize(500,24); textInput.move(20,340); textInput.addEventListener(ComponentEvent.ENTER,checkKey); addChild(textInput); button=new Button(); button.width=50; button.label="Send"; button.move(20,370); button.addEventListener(MouseEvent.CLICK,sendMsg); addChild(button); chatName=new TextInput; chatName.setSize(100,24); chatName.move(80, 370); chatName.text="<Enter Name>"; chatName.addEventListener(FocusEvent.FOCUS_IN,cleanName); addChild(chatName); rtmpGo = "rtmp://192.168.0.11/basicSO"; nc = new NetConnection( ); nc.connect(rtmpGo); nc.addEventListener(NetStatusEvent.NET_STATUS,doSO); } private function doSO(e:NetStatusEvent):void { good=e.info.code == "NetConnection.Connect.Success"; if (good) { //Set up shared object text_so=SharedObject.getRemote("test",nc.uri,false); text_so.connect(nc); text_so.addEventListener(SyncEvent.SYNC,checkSO); } } private function checkSO(e:SyncEvent):void { for (var chng:uint; chng<e.changeList.length; chng++) { switch (e.changeList[chng].code) { case "clear" : break; case "success" : break; case "change" : textArea.appendText(text_so.data.msg + "\n"); break; } } } private function cleanName(e:FocusEvent):void { chatName.text=""; } private function sendMsg(e:MouseEvent):void { noName=(chatName.text=="<Enter Name>" || chatName.text==""); if (noName) { textArea.appendText("You must enter your name \n"); } else { text_so.setProperty("msg",chatName.text +": "+ textInput.text); textArea.appendText(chatName.text +": "+textInput.text + "\n"); textInput.text=""; } } private function checkKey(e:ComponentEvent):void { noName=(chatName.text=="<Enter Name>" || chatName.text==""); if (noName) { textArea.appendText("You must enter your name \n"); } else { text_so.setProperty("msg",chatName.text +": "+ textInput.text); textArea.appendText(chatName.text +": "+textInput.text + "\n"); textInput.text=""; } } } } Link to comment https://forums.phpfreaks.com/topic/127212-solved-shared-objects-flash-text-chat/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.