查看: 1782|回复: 0
打印 上一主题 下一主题

[sandy3D引擎]Sandy1.1与Sandy1.2使用单一代码库

[复制链接]

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-1-22 14:02:37 |只看该作者 |倒序浏览
[sandy3D引擎]sandy1.1与sandy1.2使用单一代码库

我一直在使用Sandy1.1,因为它比较稳定,但我想在Sandy 1.2尝试一些新东西。我想为每个版本的不同部分有条件地编译代码,以处理库之间的差异。

Sandy 1.2变化的详细信息,请参阅附件。

有一种解决方案是使用预处理器有条件地编译代码。(参见条件编译MTASC和迈克·钱伯斯的博客上发布条件编译。)

不过,据我所知,Flash第8代中的创作工具不支持条件编译,同时我也不想打扰一个预处理。

由于在Sandy 1.1和Sandy 1.2库的差异,这里采用一个简单的方法来欺骗Flash的语法检查器以防止编译时错误。

警告:Flash对你的参数是错误类型的警告。

基本的技巧是使用无类型变量的构造函数名称。

以下,,我用tmpCam和tmpscreen代替Camera3D和ClipScreen,以避免编译器错误。

我的“版本”变量定义为“1.1”,“1.2”。

var version = "1.1";



var tmpCam = Camera3D;



if (version == "1.1") {

    var tmpScreen = ClipScreen;

    var screen:ClipScreen = new tmpScreen(mc,250,250);

    var cam:Camera3D = new tmpCam(350,screen);

} else {

    var cam:Camera3D = new tmpCam(350,350);// 1.2

}

你可以为Sandy1.1和1.2的其他区别点做一些类似的事情(见主要网站上的常见问题解答,详细了解这些)

例如,你可以从enableBackFaceCulling去做到这一点,enableBackFaceCulling是一个Sandy 1.1的固有属性,但在Sandy 1.2里确实个路径。

var version = "1.1";



var tmpObj = theRealObj;



if (version == "1.1") {

    tmpObj.enableBackFaceCulling = ***e;

} else {

    tmpObj.enableBackFaceCulling (***e);

}

你唯一需要做的(除了改变您的版本变量)只是使其指向正确的Sandy库1.1或1.2,而手工去设置CLASSPATH。

当您切换不同版本之间的Sandy库时,不要忘了删除ASO文件。


你可以通过两种外壳的FLA文件来解决这个问题,每一个不同的类路径下设置发布设置(而不是根据首选项,适用于所有FLAS)

这也将是可能的修补World3D的类中的Sandy 1.1和Sandy 1.2库返回版本号,所以您的代码可以检查该值,而不是手动版本号。我就曾弄了这样一个Sandy 1.2 变化的SVN存储库。新的方法是 World3D.getVersion(),它返回字符串“1.2”Sandy1.2。如果要修补你的Sandy1.1 World3D.as的文件,添加以下代码:

private static var _version:String = "1.1";

  

public static function getVersion( Void ) : String

{

return _version;
}
您还可以添加类似的补丁,弥补Sandy1.1和Sandy1.2之间的差异,以确保向前兼容性。我做了一些变化,例如,支持addCamera()在Sandy 1.2一样,它是支持的,Sandy1.1。这可以节省您的麻烦改变你的addCamera()调用的setCamera()。

好了主要分享就是这些,原文在这里:http://www.flashsandy.org/multiversions。
编译:驰骋的风
如需转载请保留本文纳金网处链接:http://www.narkii.com/club/bbs_285254.shtml
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 12:50 , Processed in 0.167164 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部