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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.11.2004, 14:55
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 1  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
По умолчанию выдернуть одно поле из массива

есть массив - var buttons:Array = ["site","exp","art","source"]
есть функция которая выдерает имя кнопки(тоесть например site, but)
Код:
function getMenus() {
 for (var i = 0; i<this.buttons.length; i++) {
  if (this.buttons[i] == getMenuName()) {
   trace(this.buttons)
   this.buttons.splice(i, i);
   trace(this._name+" ar "+this.buttons);
   //break;
  }
 }
}
но зараза не работает, что я тут делаю не так?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 06.11.2004, 16:58
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
причин может быть много:
смотри
-где вызывешь getMenus - видно ли там buttons,
-что возвращает getMenuName -строку или ссылку

Старый 06.11.2004, 21:19
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 3  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
вызываю в том же классе, а гетМенюс возвращает строку(function getMenus():String)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 06.11.2004, 22:29
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
тогда еще :
Цитата:
splice возвращает новый массив, извлекая из основного массива часть последовательности. Основной массив при этом остаётся без изменений. Возвращаемый массив, включает элемент start и все элементы до/но не включая/ элемента end .
а что ты ожидаешь в результате неясно ..

Старый 06.11.2004, 22:34
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 5  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
смотрим код
Код:
var buttons:Array = ["art", "site", "exp", "source"];
trace("before "+this.buttons);
this.buttons.splice(1,1)
trace("after "+this.buttons);
возвращает нам
before art,site,exp,source
after art,exp,source


тоесть он выдернул из массива баттонз 1 эллемент(сплайс)

теперь смотрим код
Код:
var buttons:Array = ["art", "site", "exp", "source"];
trace("before "+this.buttons);
for (i=0; i<this.buttons.length; i++) {
	if (this.buttons[i] == "art") {
		this.buttons.splice(i, i);
		break;
	}
}
trace("after "+this.buttons);
возвращает

before art,site,exp,source
after art,site,exp,source

тобишь он ничерта не сделал почему?

но самое интересное.
Код:
var buttons:Array = ["art", "site", "exp", "source"];
trace("before "+this.buttons);
for (i=0; i<this.buttons.length; i++) {
//мы заменили art
//(который первый эллемент) на site(не первый)
	if (this.buttons[i] == "site") 
		this.buttons.splice(i, i);
		break;
	}
}
trace("after "+this.buttons);
и получаем то что собственно нужно.
before art,site,exp,source
after art,exp,source
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 06.11.2004 в 22:35.
Старый 06.11.2004, 23:02
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
прикол, однако..
раз они так, напиши
for (i=0; i<this.buttons.length; i++) {
if (this.buttons[i] == "art") {
if(i)this.buttons.splice(i, i)
else this.buttons.shift()
break;
}
}

Старый 07.11.2004, 14:56
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 7  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Silin
спасибо огромное, работает
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 10.11.2004, 15:20
RATFACE вне форума Посмотреть профиль Найти все сообщения от RATFACE
  № 8  
RATFACE
Banned

Регистрация: Jun 2004
Сообщений: 39
Attention Ребята! Вам просто надо выспаться! -))

вы просто очень ребят не внимательны! Код весь етот работает нормально ток вот вы его не правильно используете!

Что такое splice для Array удалить елемент с какого по какой!


в случает с проверкой на "art" твоя команда выполняеться фактически так

buttons.splice(i,i) = buttons.splice(0,0)

второй параметр равен нулю а он всегда должен равен быть в ТВОЕМ случае = 1 и все будет работать

код такой

var buttons:Array = ["art", "site", "exp", "source"];
trace("before "+this.buttons);
for (i=0; i<this.buttons.length; i++)
{
if (this.buttons[i] == "art")
{
trace("! = " + i)
this.buttons.splice(i,1);
break;
}
}
trace("after "+this.buttons);

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

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

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


 


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


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