回合制RPG页游《烽烟OL》客户端源码 SDK4.0 升级4.5 or 4.6 报错解决方案

大鸡蛋 发布于 2013/09/23 11:07
阅读 2K+
收藏 2

据说《烽烟OL》客户端源码由于当初开发时间紧迫所以才用了Flex SDK 4.0,感谢@9秒-大鸡蛋 他们团队的分享!


在提升版本前,一定要先把html-template目录里面的:
1. assets 目录;
2. config 目录;
3. res 目录;
4. gsConf.js 文件;
5. gsGame.js 文件;
6. keepFrameRate.js 文件
备份好,在更改Flex SDK后,html-templete目录会被重置,上面提到的6个东西会被删掉。


切记~~切记~~~


废话不说,直接上解决方案:

1. JSON冲突的问题:

有两个类使用了 com.adobe.serialization.json.JSON 导致报错,请修改如下:
1)sceneModule.rcommon.RLoadHelper
      删除 import com.adobe.serialization.json.JSON,大概在22行;
      修改 jsonObj = JSON.decode(jsonStr); 或 jsonObj = JSON(jsonStr); 这样的语句为:jsonObj = JSON.parse(jsonStr);,大概在293行,303行,418行和943行;
      搞定。
2)util.Logging
      删除 import com.adobe.serialization.json.JSON;
      修改 return JSON.encode(o); 为: return JSON.stringify(o);
      搞定。

2. css嵌入资源的问题:

    请无视报错的 global_css.css 和 textFormat_css.css,这两个问题报错是因为别的问题导致。

3. Skin皮肤类缺少必要的 state,主要针对 spark.components.TextInput 和 spark.components.TextArea 的子类
    
    在Skin类里面找到这样的代码:

  1.          <s:states>
  2.                 <s:State name="normal"/>
  3.                 <s:State name="disabled"/>
  4.         </s:states>
复制代码
修改为:

  1.         <s:states>
  2.                 <s:State name="normal"/>
  3.                 <s:State name="disabled"/>
  4.                 <s:State name="normalWithPrompt"/>
  5.                 <s:State name="disabledWithPrompt"/>
  6.         </s:states>
复制代码
这些类有(都在 style 包下面):
   1. Skin_CrotaBasicTextArea
   2. Skin_CrotaTextInput1
   3. Skin_CrotaChatTextInput
   4. Skin_CrotaChatTextLoginbar
   5. Skin_CrotaBasicShowInfoTextArea

   注:可能有遗漏的Skin类,请按照上述方法修改,编译后搞定。

如果您按照上面的方法修改了,基本上可以恭喜您成功的占有了它。
如果您按照上面的方法修改后,并且编译后,没有成功,请直接回帖,我们会以最快的速度帮您解决。

PS: 提供修改连接服务器方法:
请修改html-template->config->ServerConfig.xml文件(大鸡蛋他们做的很好,注释很全,一看就明白了)
      
加载中
0
wolf2999
wolf2999
请问下 烽烟OL的客户端我也是升级到了sdk 4.6。
但用flashdevelop编译的时候。总这个warnig:
警告: WebClient is a module or application that is directly referenced. This will cause WebClient and all of its dependencies to be linked in with sceneModule:SceneModule. Using an interface is the recommended practice to avoid this.

然后在debug player里面就直接报错了:
VerifyError: Error #1053: 在 mx.core.Container 中非法覆盖 invalidateLayoutDirection。

        at flash.display::MovieClip/nextFrame()
        at mx.managers::SystemManager/deferredNextFrame()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:278]
        at mx.managers::SystemManager/preloader_preloaderDocFrameReadyHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2627]
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at mx.preloaders:reloader/timerHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\preloaders\Preloader.as:515]
        at flash.utils::Timer/_timerDispatch()
        at flash.utils::Timer/tick()

请问这是什么问题?

1.7版本客户端编译有问题的。

0
回去干活
回去干活
然后呢?没下文了?
回去干活
回去干活
回复 @大鸡蛋 : 下载地址在哪.
大鸡蛋
大鸡蛋
呵呵,你可以下载个跑跑啊:)
返回顶部
顶部