首先,在向我介绍其他帖子之前,我一直在寻找一个好的解决方案,但无法弄明白。是的,我已经搜索过,但它没有帮助我所以我决定在这里发帖,因为这里的人真的很聪明。
所以,我开始为AS3中的游戏做出贡献。由于我不熟悉图形等,我首先使用的是AS3代码而不是Flash加载程序等。我测试了AS3和C#之间的连接(带套接字)。
第一帧AS3:
import flash.net.Socket;
import Composer;
var sock:Socket = new Socket();
sock.connect("127.0.0.1", 30000);
sock.addEventListener(IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
sock.addEventListener(Event.CONNECT, connectHandler);
function loaderIOErrorHandler(errorEvent:IOErrorEvent):void{
trace("ioErrorHandler: " + errorEvent);
}
function connectHandler(event:Event):void{
var msg:Composer = new Composer("HELLO_WORLD");
msg.writeDouble(new Date().milliseconds);
sock.writeBytes(msg.toMessageFormat());
}
这是Composer.as(在同一个文件夹中):
package {
class Composer {
private var _arr:ByteArray;
public function Composer(header:String){
_arr = new ByteArray();
_arr.writeUTF(header);
}
public function writeUTF(utf:String):void{
_arr.writeUTF(utf);
}
public function writeInt(i:int):void{
_arr.writeInt(i);
}
public function writeShort(i:int):void{
_arr.writeShort(i);
}
public function writeFloat(f:Number):void{
_arr.writeFloat(f);
}
public function writeDouble(d:Number):void{
_arr.writeDouble(d);
}
public function writeBoolean(b:Boolean):void{
_arr.writeBoolean(b);
}
public function writeByte(b:int):void{
_arr.writeByte(b);
}
public function toMessageFormat():ByteArray{
var msg:ByteArray = new ByteArray();
msg.writeDouble(_arr.length);
msg.writeBytes(_arr);
return msg;
}
}
}
我总是得到错误:
'未找到类型或不是编译时常量'
感谢您提供帮助。
答案 0 :(得分:1)
在package {
之后的Composer.as的最顶部,您必须导入您引用的任何类,否则您将收到此错误。
这是你缺少的东西
package {
import flash.utils.ByteArray;
class Composer {