Форум 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 Кб, 64 просмотров)
Тип файла: zip test.zip (56.1 Кб, 55 просмотров)


Последний раз редактировалось sniper; 12.10.2007 в 20:13.
Старый 12.10.2007, 19:04
Ostgur вне форума Посмотреть профиль Отправить личное сообщение для Ostgur Посетить домашнюю страницу Ostgur Найти все сообщения от Ostgur
  № 2  
Ответить с цитированием
Ostgur
 
Аватар для Ostgur

Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
как код, который ты дал, связан с вопросом? сам же говоришь, что не удаляешь интервал.
лучше onEnterFrame всё таки использовать.

Старый 12.10.2007, 19:15
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 3  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Код:
this.one_wire =new wire(parent, int_ID)
Вот это место кажется мне подозрительным. Но коллизия явно где-то еще.
Весь класс в студию, тогда можно будет что-то сказать.
__________________
...Тебе страшно? Мне - нет.

Старый 12.10.2007, 20:15
sniper вне форума Посмотреть профиль Отправить личное сообщение для sniper Найти все сообщения от sniper
  № 4  
Ответить с цитированием
sniper

Регистрация: Aug 2004
Сообщений: 8
Добавил классы, но там много других процедур. Код не сильно прозрачен - типа тестовый вариант.

Старый 12.10.2007, 20:37
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Массив идентификаторов в кострукторе создавать надо (исходники не смотрел, но подозреваю, что массив в прототипе сохранен).

Старый 15.10.2007, 15:14
sniper вне форума Посмотреть профиль Отправить личное сообщение для sniper Найти все сообщения от sniper
  № 6  
Ответить с цитированием
sniper

Регистрация: Aug 2004
Сообщений: 8
все, решил проблему.
Описал this.one_wire как массив проводов. Видимо где-то ссылки на экземпляры объектов перекрывались.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:51.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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