08.11.2010, 19:17
|
Интересующийся
|
|
Регистрация: 08.11.2010
Сообщений: 20
|
|
Не работает переменная (integer) в функции
Не работает переменная (integer) в функции.
Так работает :
Цитата:
|
function drawScene() { // рисование сцены
gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
perspective(50, gl.viewportWidth / gl.viewportHeight, 0.1, 100.0);
|
её вызов:
Цитата:
|
setInterval(drawScene, 1); // вызываем drawScene каждые 15 секунд.
|
Добавляем переменную и с ней уже весь код не рабочий.
Цитата:
|
function drawScene(inte) { // рисование сцены
gl.viewport(0, 0, gl.viewportWidth, gl.viewportHeight);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
perspective(inte, gl.viewportWidth / gl.viewportHeight, 0.1, 100.0);
|
её вызов:
Цитата:
|
setInterval(drawScene(50), 1); // вызываем drawScene каждые 15 секунд.
|
В чем причина?
Последний раз редактировалось javasc, 08.11.2010 в 19:19.
|
|
08.11.2010, 19:21
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
Цитата:
|
setInterval(drawScene(50), 1); // вызываем drawScene каждые 15 секунд.
|
Где вы тут увидели 15 секунд?
setInterval(function() {
drawScene(50);
}, 15000);
|
|
08.11.2010, 19:24
|
Интересующийся
|
|
Регистрация: 08.11.2010
Сообщений: 20
|
|
Это старый комментарий....там сейчас 1 секунда :-)
Подскажитепочему мой код с переменной не работает.
|
|
08.11.2010, 20:46
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
А так?
setInterval('drawScene('+50+')', 15)
|
|
08.11.2010, 20:55
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от ksa
|
setInterval('drawScene('+50+')', 15)
|
Так лучше не делать.
setInterval(function(){
drawScene(50);
}, 15); // каждые 15 миллисекунд
Сообщение от javasc
|
setInterval(drawScene(50), 1); // вызываем drawScene каждые 15 секунд.
|
Здесь вызывается не функция drawScene, а то, что она возвращает. А она ничего не возвращает, поэтому никакого интервала и не устанавливается.
|
|
08.11.2010, 20:57
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от B@rmaley.e><e
|
Так лучше не делать.
|
Взято из примера в МСДН...
<SCRIPT>
function fnHide(oToHide){
window.setTimeout("fnHide2(" + oToHide.id + ")", 3000);
}
function fnHide2(sID){
var o = eval(sID);
o.style.display="none";
}
</SCRIPT>
<INPUT TYPE=button VALUE="Now you see me ..."
ID="oHideButton" onclick="fnHide(this)">
|
|
08.11.2010, 22:07
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от ksa
|
Взято из примера в МСДН...
|
ksa Я тоже уже говорил, что МСДН это не лучший источник инфорамации - не имейте привычки давать примеры новичкам основанные чужом говнокоде.
Один из корректных примеров использования метода setTimeout()
<div style="background: blue; color: white; width: 0px; height: 20px;"></div>
<script type="text/javascript">
window.onload = function(){
var i = 0;
(function(){
if(++i <= 300){
var element = document.getElementsByTagName('div')[0];
element.style.width = i+'px';
element.innerHTML = parseInt(i/3)+'%';
setTimeout(arguments.callee, 10);
}
})();
};
</script>
Последний раз редактировалось monolithed, 08.11.2010 в 22:20.
|
|
08.11.2010, 22:12
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Ну перестроиться на лучший манер никогда не поздно...
|
|
08.11.2010, 22:19
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от ksa
|
Ну перестроиться на лучший манер никогда не поздно...
|
К сожалению, такое бывает не часто
PS: выше пример добавил
|
|
08.11.2010, 22:30
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от monolithed
|
выше пример добавил
|
Так куда там аргументы-то совать?
|
|
|
|