Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   есть проблема с KineticJS (https://javascript.ru/forum/library-toolkit-framework/27474-est-problema-s-kineticjs.html)

lastalert 14.04.2012 00:34

есть проблема с KineticJS
 
всем привет
недавно решил попробовать KineticJS, в данный момент читаю таториалы, дошел до Image и решил немного переписать исходник, показанный там на сайте.
получилось вот что:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <script src="kinetic.js"></script>
    <script>        																													
	function drawImg(src) {
    	    var layer = new Kinetic.Layer();
	    var imageObj = new Image();
            imageObj.onload = function() {
                var image = new Kinetic.Image({                  
                    image: imageObj,
		    draggable: true,                    
                });
                
                layer.add(image);
                 
                stage.add(layer);
            };
            imageObj.src = src;
        
        }
								
	window.onload = function() {
            var stage = new Kinetic.Stage({
                container: "container",
                width: 600,
                height: 400,
            });															                
        };
    </script>
    <style>  		
  	#container {
            border: 3px solid ;
	    background: #fdfdfd;													   		    
  	}  		
    </style>
</head>
<body onmousedown="return false;" bgcolor="#8bbce9">           							
    <img src="test.png" onclick="drawImg(this.src)" />																		
    <div id="container">
    </div>														   
</body>

в хроме ругается так:
Uncaught ReferenceError: stage is not defined
imageObj.onload
ошибка на строке stage.add(layer);
Как заставить функцию видеть stage?

DjDiablo 22.04.2012 23:01

stage обьявлен внутри функции window.onload локально. То есть за её пределами он не видим, если я правильно понимаю этот код должен быть нерабочим во всех браузерах.

Первый вариант обьявите stage глобально. 2й обьявите глобально переменную drawImg, а её функцию обьявите внутри обработчика window.onload, чтобы функция drawImg находилась в той же области видимости в которой находится stage.


Часовой пояс GMT +3, время: 10:12.