我正在使用Jase库EaselJS开发视频游戏。
我的项目非常好,或在本地服务器上。但是,当我尝试将其上传到网站上时(例如:http://streetfighterjs.lixter.com/),它不再起作用了:我的精灵没有加载,我的画布中没有显示任何内容。
奇怪的是,我试图使用PreloadJS来预加载我的图像,但它似乎不起作用。我想知道是否有人已经遇到过这种问题,他是如何解决这个问题的。
答案 0 :(得分:1)
您只包括easel.js
和sound.js
。
preload.js
。因此createjs.LoadQueue
为undefined
。
只需加入preload.js
,您的代码即可使用。
答案 1 :(得分:0)
您应该不时检查您的控制台:
这一行发生了什么:
听起来像PreloadJS未包含或未加载。你能提供吗? 样本的链接?
您正在从perso1
获取未定义的typeffor。我注意到你正在创建你的perso1全局变量,但实际上并没有说明perso1等于什么。好吧,你可能会在后面的代码中,但是当你得到那个typerror时,perso1还没有设置。
答案 2 :(得分:0)
你需要在你的头部包含preloadjs(或者恰好在你的页脚元素之后)。
在我的项目中,我有以下顺序,它可以正常工作:
<script src="../js/vendor/easeljs-0.7.1.min.js"></script>
<script src="../js/vendor/soundjs-0.5.2.min.js"></script>
<script src="../js/vendor/preloadjs-0.4.1.min.js"></script>
答案 3 :(得分:0)
目前,该网站存在的问题是,在您的代码(替代功能)期间perso1
未定义。只要未加载第一个图像(imgPerso1),就会发生这种情况。
我也在控制台中看到XMLHttpRequest错误,表明正在尝试加载跨域。如果您的LoadQueue导致了这种情况,那么您可能希望将其更改为使用基于标记的加载而不是XHR来加载内容:
new createjs.LoadQueue(false);
一些杂项说明:
1.当您进行更改时,您不需要经常致电stage.update()
,因为您有一个不断更新舞台的自动收报机。
2.您仍在使用Ticker的默认计时模式(基于超时)。版本0.8.1中没有useRAF
属性 - 而是设置Ticker的timingMode
:
createjs.Ticker.timingMode = createjs.Ticker.RAF;
希望有所帮助。