g_resources не определен в cocos2d
Я пишу код cocos2d и хочу запустить свою первую сцену, определенную в папке res, и должен выполнить на ней событие ontouch. Я написал код, но он выдает ошибку, что "g_resources notfined"
Ниже приведен код моего файла "main.js", в котором произошла ошибка:
"use strict";
var cocos2dApp = cc.Application.extend({
config : document.ccConfig,
ctor : function(scene) {
this._super();
this.startScene = scene;
cc.COCOS2D_DEBUG = this.config['COCOS2D_DEBUG'];
cc.setup(this.config['tag']);
cc.AppController.shareAppController().didFinishLaunchingWithOptions();
},
applicationDidFinishLaunching : function() {
var that = this;
// initialize director
var director = cc.Director.getInstance();
var resourceSize = cc.size(1024, 768);
var designSize = cc.size(1024, 768);
var policy = new cc.ResolutionPolicy(cc.ContainerStrategy.PROPORTION_TO_FRAME, cc.ContentStrategy.NO_BORDER);
cc.EGLView.getInstance().setDesignResolutionSize(designSize.width,designSize.height,policy);
cc.EGLView.getInstance().resizeWithBrowserSize(true);
// director.setContentScaleFactor(2,2)
// enable High Resource Mode(2x, such as iphone4) and maintains low
// resource on other devices.
// director->enableRetinaDisplay(true);
// cc.setScaleX(0.5)
// cc.setScaleY(0.5)
// this.scale(0.5,0.5)
// turn on display FPS
director.setDisplayStats(this.config['showFPS']);
// set FPS. the default value is 1.0/60 if you don't call this
director.setAnimationInterval(1.0 / this.config['frameRate']);
// create a scene. it's an autorelease object
// load resources and run
cc.LoaderScene.preload(g_resources, function() {
var startSceneInstance = new that.startScene();
director.replaceScene(startSceneInstance);
});
return true;
}
});
var myApp = new cocos2dApp(helloworldScene);
Я сохранил все мои изображения в "resource.js", а имя переменной такое же, как у g_resources. Я не знаю, почему он дает эту ошибку. Кто-нибудь может мне помочь с решением
1 ответ
Вы используете Cocos2D-JS v3.0 (RC3)? Если я не ошибаюсь, этот код выглядит так, как будто он из v2.3. Если вы только начинаете, я настоятельно рекомендую вам начать с изучения 3.0.
Теперь, если вы действительно хотите продолжить использование v2.3, вам, скорее всего, нужно cocos2d.js
конфиги файл и посмотри appFiles
и убедитесь, что "src/resource.js"
(или какой бы путь это ни находился) ставится там перед любым .js
файл, содержащий код, который требует использования g_resources
,
Если вы использовали Cocos2D-JS v3.0 и ваш код был в порядке, но вы получили эту ошибку, вот что вы можете сделать: проверьте project.json
Конфиг файл, в нем посмотри "jsList"
и убедитесь, что "src/resource.js"
(или какой бы путь это ни находился) ставится там перед любым .js
файл, содержащий код, который требует использования g_resources
,
Я могу ошибаться, но этот строгий приоритет, вероятно, не понадобится, если вы не перевели браузер в строгий режим с "use strict";
в начале (тем не менее, я предпочитаю те небольшие минусы в отличие от всех плюсов, которые дает использование строгого режима).
Если проблема в том, что вы используете JSHint, и вы получаете эту ошибку в вашем редакторе, убедитесь, что поместили /*global g_resource*/
в начале файла, где вы получаете ошибку.
Еще один обходной путь, также в начале записи файла var g_resource = g_resource || []
,