Здравствуйте,
Есть два класса: Main и CustomSocket. В классе Main создается кнопка, нажав на которую отсылается запрос к серверу и получаются от него данные. Как мне эти данные заполучить в классе Main, чтобы их можно было обработать или изменить.
CustomSocket.as
Код AS3:
package {
import flash.errors.*;
import flash.events.*;
import flash.net.Socket;
public class CustomSocket extends Socket {
public var response:String;
public function CustomSocket(host:String = null, port:uint = 0) {
super();
configureListeners();
if (host && port) {
super.connect(host, port);
}
}
private function configureListeners():void {
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
public function readResponse():String {
var str:String = readUTFBytes(bytesAvailable);
response += str;
return response;
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function socketDataHandler(event:ProgressEvent):void {
trace("socketDataHandler: " + event);
readResponse();
}
}
}
Main.as
Код AS3:
package {
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
public class Main extends Sprite {
private var socket:CustomSocket;
private var d:String;
public function Main() {
var up:Sprite = new Sprite();
up.graphics.lineStyle(1, 0x000000);
up.graphics.beginFill(0xCCFF00);
up.graphics.drawRect(0,0,50,20);
var over:Sprite = new Sprite();
over.graphics.lineStyle(1, 0x000000);
over.graphics.beginFill(0x00CCFF);
over.graphics.drawRect(0,0,50,20);
//create button
var button:SimpleButton = new SimpleButton(up,over,over,up);
addChild(button);
button.addEventListener(MouseEvent.CLICK, sata);
}
private function sata(event:MouseEvent):void
{
socket = new CustomSocket("127.0.0.1", 9999);
socket.flush();
}
}
}
Спасибо.