我是actionscript的新手,想创建一个套接字服务器并收听它,这是我的代码:
package
{
import flash.display.Sprite;
import flash.net.ServerSocket;
import flash.events;
import flash.events.ServerSocketConnectEvent;
import flash.net.ServerSocket;
import flash.net.Socket;
public class one extends Sprite
{
private static var server:ServerSocket;
private static var client:Socket;
public static function create()
{
one.server = new ServerSocket();
one.server.bind(8888);
one.server.addEventListener(ServerSocketConnectEvent.CONNECT, one.serverConnectHandler);
one.server.listen();
}
public static function serverConnectHandler(e:ServerSocketConnectEvent):void
{
var socket:Socket = e.socket;
one.client = socket;
}
public static function send(param1:String)
{
one.client.writeUTFBytes(param1);
}
}
}
当我使用mxmlc.exe -static-link-runtime-shared-libraries=true one.as
进行编译时,出现错误:
C:\Users\Mark\Desktop\test program\one.as(23): col: 53 Error: Type was not found or was not a compile-time constant: ServerSocketConnectEvent.
提到了here的确切问题,但是在编译过程中我不能以某种方式指向那些库吗?唯一的解决方案是构建应用程序表单adobe proffesional
?我有点迷茫。
答案 0 :(得分:0)
这是一个简单的错误:查看您的导入。
import flash.net.ServerSocket;
import flash.events; //this is the problem
import flash.events.ServerSocketConnectEvent;
在声明导入的源路径时,您使用了错误的语法。您应该收到两个错误,第二个错误应该是Error 1172: Definition flash:events could not be found
。
import flash.events; //this is wrong syntax & does not load EVENTS Class (API)
import flash.events.*; //this is correct syntax to allow EVENTS Class
从import flash.
+ ClassName.
+ ABC;
...开始,其中ABC;
是特定的Name;
或仅使用通用的*;
< / p>
解决方案:
因此,只需将import flash.events;
替换为import flash.events.*;
,它应该可以工作。