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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.08.2003, 23:00
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 1  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
По умолчанию определённо глюк (не исключено, что мой)...

Почему при таком коде число в имени всегда на единицу больше глубины?!!
Код:
_root.crossword.duplicateMovieClip ("crossword"+(++depth), depth);
trace ("d n: "+_root["crossword"+depth].getDepth ()+" "+_root["crossword"+depth]._name)


Последний раз редактировалось metton; 05.08.2003 в 23:01.
Старый 06.08.2003, 01:07
Igor Ageyev вне форума Посмотреть профиль Отправить личное сообщение для Igor Ageyev Посетить домашнюю страницу Igor Ageyev Найти все сообщения от Igor Ageyev
  № 2  
Igor Ageyev
 
Аватар для Igor Ageyev

Регистрация: Jun 2003
Адрес: Russia
Сообщений: 49
По умолчанию Дык ты же сам его на единицу увеличиваешь

(++depth)

Старый 06.08.2003, 01:13
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 3  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
Так первая тоже должна увеличиться! Я же префиксно инкрементирую!

Старый 06.08.2003, 01:25
начинающий вне форума Посмотреть профиль Найти все сообщения от начинающий
  № 4  
начинающий

Регистрация: Jul 2003
Адрес: Винница (или область)
Сообщений: 118
Есть два вида оператора инкремента: префисный - ++а и постфиксный – а++.
Разница между ними такова: если имеем код
a = 5;
b = a++;
то «при выходе» значения a и b станут соответственно 6 и 5 (во второй строке сначала исполняется присваивание, а потом к переменной а прибавляется еденица). Если же написать:
a = 5;
b = ++a;
то обе переменные станут равны 6 (во второй строке сначала производится увеличение а, после чего это новое значение заносится в переменную b).
Если же имеется код:
_root.crossword.duplicateMovieClip ("crossword"+(++depth), depth);
то алгоритм выполнения таков: второй параметр передаётся сразу, без вычеслений, то есть depth, а когда же приходится передавать первый аргумент, то приходится к depth прибавить 1, потом склеить со строкой, а потом уж передать в функцию.
Если же написать так:
_root.crossword.duplicateMovieClip ("crossword"+depth++, depth);
То при передаче первого аргумента сначала произойдет склейка строк, а потом depth=depth+1, то есть то, что и нужно.
Тут тоже делается всё через зад
__________________
все там будем...

Старый 06.08.2003, 01:38
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 5  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
2начинающий
Честно, начиная читать это сообщение почему-то хотелось сразу отписать гневный ответ - я ж написал, что у меня постфиксное инкрементирование...
Потом дошёл до строчки
Цитата:
то алгоритм выполнения таков: второй параметр передаётся сразу, без вычеслений, то есть depth, а когда же приходится передавать первый аргумент, то приходится к depth прибавить 1, потом склеить со строкой, а потом уж передать в функцию.
Спасибо


А почему так криво (сначал второй)?



Цитата:
Тут тоже делается всё через зад
а где ещё?

Старый 06.08.2003, 02:11
начинающий вне форума Посмотреть профиль Найти все сообщения от начинающий
  № 6  
начинающий

Регистрация: Jul 2003
Адрес: Винница (или область)
Сообщений: 118
Люблю прелюдии!
Передача с заду на перед – типичный случай. Так проще логика работы программ, потому что данные из стека (место, куда передаются значения переменных в функции) при обратном запихивании достаются в природном порядке, ввиду организации стека по принципу первый вошел – последний вышел (подобно лотку тарелок). Видимо такой и порядок подготовки значений для погружения их в стек.

А что значит: «а где еще? »
__________________
все там будем...

Старый 06.08.2003, 02:28
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 7  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
2начинающий
Цитата:
при обратном запихивании достаются в природном порядке
LIFO?

Цитата:
А что значит: «а где еще? »
Ты писал: "Тут тоже делается всё через зад".
Вот я и спросил, где ещё.

Старый 06.08.2003, 03:04
Useless вне форума Посмотреть профиль Отправить личное сообщение для Useless Посетить домашнюю страницу Useless Найти все сообщения от Useless
  № 8  
Useless

Регистрация: Mar 2001
Адрес: всё, отжился...
Сообщений: 1,024
Отправить сообщение для Useless с помощью ICQ
Опа! Этого даже я не знал...
скромно, eh?

начинающий, спасибо за инфу.
__________________
Work not wolf - in forest no run

Старый 06.08.2003, 14:48
начинающий вне форума Посмотреть профиль Найти все сообщения от начинающий
  № 9  
начинающий

Регистрация: Jul 2003
Адрес: Винница (или область)
Сообщений: 118
--2 Useless: --
Нельзя обнять необъятное и впихнуть невпихуемое (Р.Трахтенберг)

--2 all: --
Как пела група Наутилус: "Знайте и запоминайте...".
Можете попробовать такой пример:

Код:
function f()
{
	for(var i=0; i<arguments.length; i++)
		trace("аргумент функции #" + i + ": " + arguments[i]);
}

var foo = 0;
f( ++foo, ++foo, ++foo, ++foo, ++foo, ++foo ); // и т.д. - кол-во аргументов не ограничено
__________________
все там будем...


Последний раз редактировалось начинающий; 06.08.2003 в 14:55.
Создать новую тему   Часовой пояс GMT +4, время: 03:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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