Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.10.2007, 18:17
sniper вне форума Посмотреть профиль Отправить личное сообщение для sniper Найти все сообщения от sniper
  № 1  
Ответить с цитированием
sniper

Регистрация: Aug 2004
Сообщений: 8
По умолчанию проблема с setInterval

Помогите, ребята, есть проблема с использованием сабжа.
Или может я чего не понял.

Есть класс (wire) который рисует провод, качающийся с затуханием.

Код:
//рисуем провод
public function draw_wire():Void{
	trace ("draw_wire"+this.depth)
	this.oscill_time += delta_t  //просто время..
	this.calc_oscillation_anchor2() // рассчитываем параметры колебания
 	this.provod.clear()                // очищаем иклип
	this.provod.lineStyle( 1, 0xFF0000, 100 )
	this.provod.moveTo(wireX1, wireY1)
	this.provod.curveTo( this.anchorXdraw, this.anchorYdraw, wireX2, wireY2)  //рисуем провод с рассчитанными координатами
	updateAfterEvent()
}
В другом классе (stend) по klemm_Release создается экземпляр класса (one_wire) и по setInterval запускается метод отрисовки качания (draw_wire) класса (wire).

Код:
public function klemm_Release ():Void{
	if (!this.one_wire.draw_flag) { //рисуем или не рисуем провод
		//создаем новый провод
		this.one_wire =new wire(parent, int_ID)
		var temp_draw_wire_int = setInterval (this.one_wire, "draw_wire", 5)
		this.int_lenth = this.draw_wire_int.push(temp_draw_wire_int) //массив идентификаторов setInterval
		int_ID++
	} else {
		//перерисовываем провод окночательно
	}
}
так вот проблема в том, что при первом клике мышкой все рисуется и создается setInterval. В классе wire есть trace ("draw_wire"+this.depth) он кидает на output:
draw_wire0.
draw_wire0
draw_wire0
.....и т.д.

При создании второго провода первый интервал исчезает(!!) (я его нигде не удаляю) , качание первого провода останавливается и в Output сыплется уже draw_wire1, хотя мне представляется, что должно выводиться попеременно
draw_wire0
draw_wire1
draw_wire0
draw_wire1
...и т.д.

Пробовал запихнуть setInterval в конструктор wire - результат тот же.
Какие будут предположения?

в приложенном архиве Class.zip классы:
wire - провод
stend - стенд
klemm - клемма
создаем стенд, в нем создаем клеммы, при нажатии на клемму рисуется провод (от клеммы до клеммы).

в приложенном архиве test.zip:
test_lib.fla - сам проект
testlib.swf - библиотека к проекту
Вложения
Тип файла: zip Class.zip (3.7 Кб, 65 просмотров)
Тип файла: zip test.zip (56.1 Кб, 56 просмотров)


Последний раз редактировалось sniper; 12.10.2007 в 20:13.
Создать новую тему   Часовой пояс GMT +4, время: 18:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.