Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2010, 19:17
Интересующийся
Отправить личное сообщение для javasc Посмотреть профиль Найти все сообщения от javasc
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2010, 19:21
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Цитата:
setInterval(drawScene(50), 1); // вызываем drawScene каждые 15 секунд.
Где вы тут увидели 15 секунд?

setInterval(function() {
drawScene(50);
}, 15000);
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2010, 19:24
Интересующийся
Отправить личное сообщение для javasc Посмотреть профиль Найти все сообщения от javasc
 
Регистрация: 08.11.2010
Сообщений: 20

Это старый комментарий....там сейчас 1 секунда :-)

Подскажитепочему мой код с переменной не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2010, 20:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

А так?

setInterval('drawScene('+50+')', 15)
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2010, 20:55
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от ksa
setInterval('drawScene('+50+')', 15)
Так лучше не делать.
setInterval(function(){
  drawScene(50);
}, 15); // каждые 15 миллисекунд
Сообщение от javasc
setInterval(drawScene(50), 1); // вызываем drawScene каждые 15 секунд.
Здесь вызывается не функция drawScene, а то, что она возвращает. А она ничего не возвращает, поэтому никакого интервала и не устанавливается.
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2010, 20:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от 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)">
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2010, 22:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2010, 22:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Ну перестроиться на лучший манер никогда не поздно...
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2010, 22:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от ksa
Ну перестроиться на лучший манер никогда не поздно...
К сожалению, такое бывает не часто

PS: выше пример добавил
Ответить с цитированием
  #10 (permalink)  
Старый 08.11.2010, 22:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от monolithed
выше пример добавил
Так куда там аргументы-то совать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная переменная, считать правильнае значение в функции konstantinopol Общие вопросы Javascript 11 01.05.2010 23:28
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Конструкция не пашет в функции , а в событии работает FRIE jQuery 1 05.03.2010 11:38
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03