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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
По умолчанию Типизированный массив - пути обхода

Типизированных массивов насколько мне известно у нас нету.
Но если я пихаю в массив 1000 экземпляров класса, а потом мне нужно вызывать у каждого какой-нибудь метод, например, каждую секунду - тогда кастинг становится слишком ресурсоёмкой операцией, как вы отсюда выкручиваетесь?

Пример абстрактный, практической нужды в данный момент мне в этом нет.
Просто интересно.

Старый 06.12.2009, 16:57
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 2  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
не надо кастовать. делаем тупо arr[i]["funcName"](arg1,arg2,...);

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
На самом деле кастинг только ускоряет... типизированые массивы, т.е. Vector имееют некоторое преимущество при использовании простых типов, но они сильно недоделаны для того, чтобы их можно было по-нормальному использовать...
Если нужно что-то похожее на вектор только в 9-м плеере, можно наследоваться от массива и не делать класс динамическим + добавить функции типа getItemAt(index:uint):T setItemAt(index:uint, item:T):void + FD поддерживает (т.е. узнает) типизированый массив по комментариям типа:
Код AS3:
var arr:Array/*int*/ = [1, 2, 3];
MTASC это поддерживал даже в AS2, немного не полностью, но все же...
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2009
Сообщений: 1,651
нифига себе как можно. Пошел тестить.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А, да... в таком случае цикл перебирающий массив прийдется реализовывать в Java-style, что, конечно будет дольше чем обычный цикл... вобщем, лучше пользуйтесь HaXe - там нормальные генерики
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2009
Сообщений: 1,651
слушай, откуда ты такие вещи узнаешь?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Про HaXe:
http://haxe.org/ref/type_params?lang=ru
Java:
http://java.sun.com/j2se/1.5.0/docs/...e/foreach.html
А про скорость - ну, как-то сделал тест, померял
__________________
Hell is the possibility of sanity

Старый 06.12.2009, 21:20
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 8  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Добавлю я пожалуй ложку дёгтя в HaXe:
glaze написанный на AS3.
glaze портированный на HaXe.
При просмотре HaXe кода замечено, что изменения относительно AS3 кода незначительны, вопрос, куда утекает процессорное время?

HaXe конечно хорош, но "иногда компилятору сносит голову" и можно вместо объявлений одной локальной переменной, получить две, как будто обфускатором прошлись

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, в любой программе есть баги... а в в AS3 *= не всегда работает, например, или метки циклов использованые внутри for-each / for-in. Кроме того, я, конечно не берусь судит, но, есть вероятность того, что похожий код не будет похоже работать... вобщем, к этому никто и не стремился, на сколько я понимаю...
__________________
Hell is the possibility of sanity

Старый 07.12.2009, 15:46
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Если нужно что-то похожее на вектор только в 9-м плеере, можно наследоваться от массива и не делать класс динамическим + добавить функции типа getItemAt(index:uint):T setItemAt(index:uint, item:T):void + FD поддерживает (т.е. узнает) типизированый массив по комментариям типа:
Ммм... и это даст прирост скорости? Сомневаюсь же... Проверить надо на досуге.

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

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

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


 


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


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