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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.03.2009, 00:58
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 21  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
Вообще жесть. по-моему все абсолютно не логично. и for и reverse работают с экземпляром одного и того же класса - Array, но один работает с ним как с объектом (Object), а другой работает как с массивом (Array). а вот методы push и unshift вообще работают по своему. и это считается нормально? А самое главное, я не понимаю, что заставило разработчиков AS2 так обойтись с массивом, почему for для массивов нельзя было перегрузить? Ведь кроме for нет других способов пройтись по элементам массива, в том случае, если они идут не подряд.
А есть какой-нибудь стандартный класс, который работает как... даже не знаю, как это назвать, как нормальный массив... ну или как сишный dequeue или queue. Где есть вставка в начало, конец, произвольный доступ к элементам и при этом перечисление происходит в одном и том же порядке? или это только в AS3?

Старый 10.03.2009, 01:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 22  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Нет никакой проблемы, есть только ваше непонятное желание работать с массивом через for..in, а не через for который для этого и нужен.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.03.2009, 01:14
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 23  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
Код AS1/AS2:
var arr:Array = new Array();
arr.push(0);
arr.push(1);
arr.push(2);
delete arr[1];
arr['some'] = 3;
for (i in arr) trace(i+": "+arr[i]);
Ладно, прошу прощения за беспокойство. Я свою проблему уже давно решил, мне просто было интересно почем и как именно реализована работа с массивами во flash, чтобы не столкнуться с ней в будущем. Большое спасибо за помощь.

Старый 10.03.2009, 01:17
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 24  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Object.__resolve() вас спасет, перехватываете обращение к свойству - и отдаете какое угодно значение. Типа такого
Код AS1/AS2:
MyClass.prototype.__resolve(p:Object):Object
{
    if (String(p) == "someProperty") return someValue;
    return undefined;
}
ЗЫ. Класс должен быть динамическим, и не наследоваться от массива - а то цифровые значения в ресолв не попадут.
__________________
Hell is the possibility of sanity

Старый 10.03.2009, 01:24
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 25  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Да не работаете вы с массивом в данном случаи Вы работаете с объектом, отсюда и модель другая.
Любую еду можно есть ложкой (проверено двумя годами на камбузе ), а можно вилкой, но не любую. И способ использования у них не всегда совпадает, вилкой можно прокалывать макароны, а ложкой не получится. Вот вы сейчас пытаетесь именно это сделать
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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