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

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

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

Регистрация: Mar 2009
Сообщений: 357
По умолчанию как выйти из функции (прервать ее выполнение)?

есть функция следующего вида:
Код AS3:
private function zzz():void
{
  if (z == 0)
  {
     y = 1;
  } else if (z == 1)
  {
     y = 2;
  }
 i = y + 5;
}
т.е. для разных условий выполняется одно и тоже действие. а как сделать, чтобы для одного из условий выполнялось это же действие, но с другими параметрами и после его выполнения не выполнялось общее действие? что-то типа:
Код AS3:
private function zzz():void
{
  if (z == 0)
  {
     y = 1;
  } else if (z == 1)
  {
     y = 2;
     i = y + 10;
     //exit
  }
 i = y + 5;
}

Старый 29.04.2009, 01:08
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
return?
__________________
4am is time to rock

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

Регистрация: Jun 2006
Сообщений: 164
re***n

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

Регистрация: Mar 2009
Сообщений: 357
оно.
после поста нашел у себя неточность:после этого общего действия есть еще одно. как к нему "перепрыгнуть"? у меня довольно длинный список условий, а измененное действие требуется лишь для двух.


Последний раз редактировалось loover; 29.04.2009 в 01:22.
Старый 29.04.2009, 01:40
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 5  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Нужно сформулировать код таким образом, чтобы прыгать не пришлось - если приходится, значит код плохо написан. А так - http://www.ericfeminella.com/blog/20...tement-in-as3/

Старый 29.04.2009, 01:50
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 6  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
у меня довольно длинный список условий, а измененное действие требуется лишь для двух.
Цитата:
Нужно сформулировать код таким образом, чтобы прыгать не пришлось - если приходится, значит код плохо написан
Самый простой способ - завести дополнительную переменную, которая будет работать "флагом" (true/false). Где-то ранее (когда вам нужно) вы устанавливаете эту переменную в нужное вам значение. А потом в нужном месте делаете проверку условия.

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

Регистрация: Jan 2009
Сообщений: 60
Отправить сообщение для serenkiy с помощью ICQ
можно использовать break совместно с метками (label):
Код AS3:
private function zzz():void
{
  metka: {
    if (z == 0)
    {
       y = 1;
    } else if (z == 1)
    {
       y = 2;
       i = y + 10;
       break metka;
    }
    i = y + 5;
  }
}

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

Регистрация: Mar 2009
Сообщений: 357
заюзаю break. мне полезно )
а можно ли сделать так: переменной задать другое значение в функции, а после завершения функции вернуть ее начальное значение?


Последний раз редактировалось loover; 29.04.2009 в 03:04.
Старый 29.04.2009, 10:56
insected вне форума Посмотреть профиль Отправить личное сообщение для insected Найти все сообщения от insected
  № 9  
Ответить с цитированием
insected
 
Аватар для insected

Регистрация: Jun 2006
Сообщений: 164
Как уже сказал VVall, нужно организовывать код таким образом, чтобы не нужно было прыгать никуда. Выделите условный код в функции и оперируйте ими. Писать нужно так, чтобы код ЧИТАЛСЯ, кто будет разбираться в ваших прыжках?

Старый 29.04.2009, 13:52
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 10  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Сообщение от insected Посмотреть сообщение
кто будет разбираться в ваших прыжках?
Даже более того. Если вы начнёте писать что-то хоть немного сложнее, а потом захотите вернуться к написанному спустя месяц-два - то вы голову сломаете, пока разберётесь, что куда и почему у вас прыгает.

Поэтому, если планируете что-то делать на флеш - не используйте такие прыжки никогда (кроме, разве что, необходимости прервать двойной цикл).

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

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

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


 


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


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