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

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

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

Регистрация: Jan 2011
Сообщений: 247
По умолчанию через if не выполняется функция

Есть два варианта кода:


1.В первом варианте все работает замечательно но запуск функции не там где надо.
Код AS3:
private function eFrameEvents(e:Event):void {
             trace(1);
            moneyUp();//<----- если стоит тут все прекрасно работает,но смысл ей тут стоять по коду нет.
            if(health <= 0){
                     trace(2);
                    if (this.parent) {
                            trace(3);                        
                           this.parent.removeChild(this); 
                          trace(4);
                     }
                        this.removeEventListener(Event.ENTER_FRAME, eFrameEvents);             
            }
        }
        public function moneyUp():void {
          trace(5);            
           var _e:WidgetEvent = new WidgetEvent(WidgetEvent.SERVICE_SELECT);
            _e.value = 0;
            dispatchEvent(_e);
          trace(6);
        }

2.Во втором варианте функция moneyUp(); находится где положено и нужно по коду, но в другом классе он его не ловит...
Код AS3:
private function eFrameEvents(e:Event):void {
             trace(1);
            if(health <= 0){
                     trace(2);
                    if (this.parent) {
                            trace(3);                        
                             moneyUp();//<---- стоит теперь тут, но не ловит в другом классе событие
                           this.parent.removeChild(this); 
                          trace(4);
                     }
                        this.removeEventListener(Event.ENTER_FRAME, eFrameEvents);             
            }
        }
        public function moneyUp():void {
          trace(5);            
           var _e:WidgetEvent = new WidgetEvent(WidgetEvent.SERVICE_SELECT);
            _e.value = 0;
            dispatchEvent(_e);
          trace(6);
        }
Сразу скажу что абсолютно все цифры трейсятся, в двух вариантах.
Кто сталкивался с такой проблемой, и с чем она может быть вызвана?


Последний раз редактировалось GrafMine; 11.09.2011 в 20:52.
Старый 11.09.2011, 21:35
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Может проблема в том, кто его ловит?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от GBee Посмотреть сообщение
Может проблема в том, кто его ловит?
Код AS3:
var _instance:Target = new Target(tT);
_instance.addEventListener(WidgetEvent.SERVICE_SELECT, settingsHandler);
 
		public function settingsHandler(e:WidgetEvent):void {
			trace(' :( ');//<- в первом варианте трейсит в отличии от второго
			switch(e.value) {
				case 0: {
					//...
					break;
				}
			}
		}

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
var _instance:Target = new Target(tT);
а покажите код конструктора

Добавлено через 1 минуту
и еще..if у вас сработает при наличии экзепляра в дисплей листе..а судя по последнему куску кода вы его туда не добавляете.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от cleptoman Посмотреть сообщение
Код AS3:
var _instance:Target = new Target(tT);
а покажите код конструктора

Добавлено через 1 минуту
и еще..if у вас сработает при наличии экзепляра в дисплей листе..а судя по последнему куску кода вы его туда не добавляете.
Куда я только не пробовал его вставить этот код:
Код AS3:
var _instance:Target = new Target(tT);
хоть в самое начало хоть в самый конец,и в ентер фрейме пробовал...
кода очень много и не особо хотел бы его весь выкладывать ...
Интересует вопрос а куда его нужно добавить ?)

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Breakpoint вас спасет.

Старый 11.09.2011, 22:40
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 7  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от Bgg Посмотреть сообщение
Breakpoint вас спасет.
В первые слышу о таком, поискал немного в гугле и мало по нем русского FAQ а если и есть то в "двух словах", не могли бы вы рассказать или показать пример применения для моего случая?

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
http://help.adobe.com/ru_RU/Flash/10...c34-7fb3a.html

Старый 11.09.2011, 23:55
GrafMine вне форума Посмотреть профиль Отправить личное сообщение для GrafMine Найти все сообщения от GrafMine
  № 9  
Ответить с цитированием
GrafMine
 
Аватар для GrafMine

Регистрация: Jan 2011
Сообщений: 247
Цитата:
Сообщение от Bgg Посмотреть сообщение
Какой-то темный лес ))
Почитав что написано в вашей ссылке написано для чего он вообще:
Цитата:
Например, если имеется набор операторов if..else if и невозможно определить, какой из них выполняется, то перед этими операторами можно добавить точки останова и проверять их по одной (перемещаться по ним) в отладчике.
Я могу ошибаться но у меня всего один if кто если не он выполняется ?
И на сколько я понял это помощник для нахождения ошибок в громадных исходниках где одновременно выполняются множество операторов, разве это мой случай?

Эх,странные случаи иногда бывают в программировании,боюсь что выход с моей ситуации поможет решить только тот кто сталкивался с этим ранее


Последний раз редактировалось GrafMine; 11.09.2011 в 23:59.
Старый 12.09.2011, 00:22
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Отладчик - это совершенно базовая вещь, а не тёмный лес. Если у вас не громадный исходник, то к чему вопросы? Более того - эти ваши трейсы тоже отладчик своего рода.
Что же у вас не так понять нормальный человек не в состоянии. Если все цифры трейсятся - значит всё работает. Если не все и не так - значит соответствующие условия не выполняются. Поможет дружба с логикой.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

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

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


 


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


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