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

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

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

Регистрация: Jul 2007
Сообщений: 38
По умолчанию Функция выполняется хотя не должна :)

Допустим есть такая миниигра,шарики летят вверх,щелкаешь по ним,они исчезают,пропустил пять шариков проиграл. Проблема с пропущенными шариками - функция miss_click все равно иногда выполняется даже когда ни одного шарика не пропустил.
Код AS3:
   function new_kis_bubble() {
	haha=new bubble();
	haha.addEventListener(MouseEvent.CLICK,kiss_click);
 
	yTween=new Tween(haha,'y',None.easeIn,kord1y,end_kordy,speed,false);
	xTween=new Tween(haha,'x',None.easeIn,kord1x,end_kordx,speed,false);
	mymc.addChild(haha);
 
	yTween.addEventListener(TweenEvent.MOTION_FINISH,miss_click);
}
function kiss_click(e:Event) {
	// Эта функция срабатывает при клике на шарик
	yTween.removeEventListener(TweenEvent.MOTION_FINISH,miss_click);
	mymc.removeChild(DisplayObject(e.target));					
	trace('click');
}
function miss_click(e:Event) {	
	// Эта должна срабатывать если шарик пропустили				
	trace('misclick');
}


Последний раз редактировалось iNils; 20.02.2010 в 16:23.
Старый 18.02.2010, 02:53
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 2  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
о_О
1. не делайте вложенных функций
2. у вас странный алгоритм:
upTween один на всех?
upTween'у даете слушать motion_finish на miss_click
а удаляете слушателя motion_finish почему-то уже missed_heart
где вызывается kiss_click?

приберитесь в своем коде, по данным каракулям невозможно понять в чем суть проблемы.
__________________
Блог, Twitter
Брюзга.

Старый 18.02.2010, 03:22
Tranki вне форума Посмотреть профиль Отправить личное сообщение для Tranki Найти все сообщения от Tranki
  № 3  
Ответить с цитированием
Tranki

Регистрация: Jul 2007
Сообщений: 38
прибрался. да алгоритм странный,может как то по другой схеме это можно реализовать?

Старый 18.02.2010, 14:21
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 4  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Может стандартный твинер глючит? Попробуй альтернативный твинер.
Такую простую задачу можно и с enter_frame'ом решить.

Старый 18.02.2010, 15:56
Diestro вне форума Посмотреть профиль Отправить личное сообщение для Diestro Посетить домашнюю страницу Diestro Найти все сообщения от Diestro
  № 5  
Ответить с цитированием
Diestro
 
Аватар для Diestro

Регистрация: Oct 2006
Адрес: Кисловодск
Сообщений: 192
Отправить сообщение для Diestro с помощью ICQ
Вот здесь что происходит:
Код AS3:
upTween.removeEventListener(TweenEvent.MOTION_FINISH,missed_heart);
?
Что такое upTween и missed_heart?
__________________
blog.diestro.ru

Старый 18.02.2010, 17:10
Tranki вне форума Посмотреть профиль Отправить личное сообщение для Tranki Найти все сообщения от Tranki
  № 6  
Ответить с цитированием
Tranki

Регистрация: Jul 2007
Сообщений: 38
Еще раз поправил вот эта строка должна стоять.
Код AS3:
yTween.removeEventListener(TweenEvent.MOTION_FINISH,miss_click);
Я не понимаю,yTween в данном случае получаетяс один для всех? тоесть кликая по обьекту я убераю слушатель для всех обьектов правельно? как убрать для какого то конкретного обьекта?

Старый 18.02.2010, 17:55
Diestro вне форума Посмотреть профиль Отправить личное сообщение для Diestro Посетить домашнюю страницу Diestro Найти все сообщения от Diestro
  № 7  
Ответить с цитированием
Diestro
 
Аватар для Diestro

Регистрация: Oct 2006
Адрес: Кисловодск
Сообщений: 192
Отправить сообщение для Diestro с помощью ICQ
Нет там получается немного по другому. Как только вы пишете
Код AS3:
yTween = new Tween
создается экземпляр класса Tween и ссылка на него присваивается переменной yTween.
В следующий раз когда происходит тоже самое - переменной yTween присваивается ссылка на только что созданный экземпляр Tween, а ссылка на то что лежало в этой переменной уходит в небытиё. Естественно строка
Код AS3:
yTween.removeEventListener(TweenEvent.MOTION_FINISH,miss_click);
будет удалять слушатель не оттуда откуда хотелось бы.
__________________
blog.diestro.ru

Старый 18.02.2010, 18:45
Tranki вне форума Посмотреть профиль Отправить личное сообщение для Tranki Найти все сообщения от Tranki
  № 8  
Ответить с цитированием
Tranki

Регистрация: Jul 2007
Сообщений: 38
понятно,и как мне привязать твин к обьекту?

Старый 18.02.2010, 18:58
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 9  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Цитата:
Сообщение от Tranki Посмотреть сообщение
понятно,и как мне привязать твин к обьекту?
Например сделать твин свойством класса bubble.

Старый 19.02.2010, 17:24
Tranki вне форума Посмотреть профиль Отправить личное сообщение для Tranki Найти все сообщения от Tranki
  № 10  
Ответить с цитированием
Tranki

Регистрация: Jul 2007
Сообщений: 38
что мне указазывать твину в качестве первого аргумента?
Код AS3:
public class bubble extends MovieClip{		
public function bubble (kord1x,kord1y,end_kordx,end_kordy,speed) {
 
var upTween=new Tween(haha,'y',None.easeIn,kord1y,end_kordy,speed,false);
 
}
}

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

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

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


 


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


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