我(实际上是我的同学)在Windows 7 (XAMPP)上加载本地ZEND_AMF服务时遇到了问题。我在谷歌或Stackoverflow上找不到任何答案。我发现一个类似的话题没有任何答案:ActionScript 3 AMF Zend无声失败
让我来描述一下这个问题:我在FLASH CS5中为一款内存(匹配)游戏开发了UI和数据加载。游戏使用来自ZEND框架网站的数据(你可以在那里添加关卡/卡片/图像)。事情是这样的:
var nc:NetConnection = new NetConnection();
nc.connect("http://localhost/MemoryGame/public/service/gateway");
var res:Responder = new Responder(returnDataList,returnError);
nc.call("Service_GatewayService.getWorldsList",res);
在我的Macbook Pro(使用MAMP作为本地服务器)上一切都很好,但是我的一个同学(谁在帮助它)正在使用带有XAMPP的Windows 7笔记本电脑,没有看到任何东西。我们都在用Flash CS5.5。
由于某些原因,他的Flash无法加载本地服务。当他像我一样使用相同的URL路径时,Flash不会在响应器中做任何事情。没有错误函数调用和没有完成函数调用。我们一直在寻找原因,并尝试了几种方法。
在互联网上的ZEND_AMF教程中,我们找到了一个在线AMF服务,并将其放入代码中。当然,我们使用的是一个不存在的服务函数,因此响应器将调用Error函数。是的,这是有效的。他负责returnError()
。
这个问题的原因很明显:我同学电脑上的Flash(使用XAMPP)不会加载本地服务。
有谁知道这个问题的解决方案吗?
什么不是解决方案:
- 允许swf与非本地url对应(是一个选项,您必须将swf添加到Flash设置中)=>已经发生
经过两天的艰苦搜索,我们自己发现了问题。在服务控制器中,我们重定向到AMF动作。在Mac上,即使Flash等待重定向,这也不会产生问题。我猜在Windows上他不会等。我们在服务url后填充了action,现在它在windows和mac上都可以运行。这是两个操作系统之间的一个微不足道的区别。