Не получается получить доступ к свойству объекта Kinetic.Image 
		
		
		
		Не могу вывести свойство объекта класса, в одном из методов этого класса. 
	
function Snake () {		
	var snakeImg = new Image();
	snakeImg.src = "Snake.png";
	snakeImg.onload = function () {
		this.snake = new Kinetic.Image ({
			x:40,
			y:40,
			image:snakeImg			
		})
	var snakeLayer = new Kinetic.Layer;	
	snakeLayer.add (this.snake);
	stage.add (snakeLayer);
	}
}
Snake.prototype.move_derection = function () {
	
	console.log("ne pish" +this.snake.x);
}
Не узнает оно this.snake в методе. Вместо вывода x координаты, пишет что this.snake не определен.  | 
	
		
 Конечно. this.snake у тебя добавляется асинхронно, при загрузке Image. 
	 | 
	
		
 Так, а как исправить? 
	 | 
	
		
 Концептуально. Сменив подход. Я б вообще отнаследовал Snake от Kinetic.Image. Но это крайности. 
	 | 
	
		
 Существенная проблема в том, что ты пытаешься одновременно конструировать новый объект, скармливать ему ресурсы и проверять их загрузку. 
	 | 
	
		
 Что-то типо: 
	
window.onload = init;
//...
//описание всяких переменных
//...
function init () {
stage = new Kinetic.Stage ({	
	container: "container",
	height: HEIGHT,
	width: WIDTH
});
snakeImg = new Image();
snakeImg.src = "Snake.png";
//инициализация начнется только после загрузки картинки.
snakeImg.onload = function () {
snakeObj = new Snake ();
snakeObj.move_derection ();
}
};
И прежний код с классом Змейки. Вроде, что б улучшить, можно сделать так: в начале создавать функцию, которая будет инициализировать все картинки что есть, а уж после их загрузки, вызывать другую функцию с инициализацией всяких переменных, объектов и т.д. Удобоваримо?  | 
| Часовой пояс GMT +3, время: 15:08. |