So I get this error when I test the following code:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at TextChat/checkKey()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.controls::TextInput/handleKeyDown()
Code:
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(Com ponentEvent.ENTER,checkKey);
addChild(textInput);
button=new Button();
button.width=50;
button.label="Send";
button.move(20,370);
button.addEventListener(MouseE vent.CLICK,sendMsg);
addChild(button);
chatName=new TextInput;
chatName.setSize(100,24);
chatName.move(80, 370);
chatName.text="<Enter Name>";
chatName.addEventListener(Focu sEvent.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=="<En ter 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=="<En ter 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="";
}
}
}
}