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

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

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

Регистрация: Mar 2009
Сообщений: 37
Post Задать тип для Vector.<T> во время выполнения

Здравствуйте. Собственно вопрос указан в теме: можно ли в классе вектор задавать тип во время выполнения? Можно конечно использовать класс Object, но тогда утрачивается идея вектора и делает его похожим на обычный массив с нюансами. Есть ли в ActionScript механизм, похожий на обобщения в C#?

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

Регистрация: Feb 2013
Сообщений: 176
а изменение в runtime тип вектора не приводит к "утрачивается идея вектора и делает его похожим на обычный массив с нюансами."?

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Мне не известна такая возможность. Разве что, тип хранимых значений в векторе будет супер классом необходимых вам вариантов. Тогда, получить объект определённого типа можно будет так:
Код AS3:
var vec:Vector.<SomeClass>;
trace(vec[0] as MyClass);
При условий, что MyClass расширяет SomeClass.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Mar 2009
Сообщений: 37
Tails: такое решение мало чем отличается от Object, но спасибо за ответ, я тоже уже тоже не нашел подобных возможностей, перекопав документацию.
Sync: не утрачивается. Можно представить ситуацию, когда у нас есть овощи и фрукты, которые нужно разместить в разных корзинах, но сама система заранее не знает ничего об овощах и фруктах и узнаёт только во время выполнения, когда создаются разные корзины для овощей и для фруктов. Система получается более гибкой, так как можно легко добавить другие типы, например ягоды и система сама будет создавать корзину для ягод.

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

Регистрация: Feb 2013
Сообщений: 176
Цитата:
Сообщение от MrYeti Посмотреть сообщение
не утрачивается. Можно представить ситуацию, когда у нас есть овощи и фрукты, которые нужно разместить в разных корзинах, но сама система заранее не знает ничего об овощах и фруктах и узнаёт только во время выполнения, когда создаются разные корзины для овощей и для фруктов. Система получается более гибкой, так как можно легко добавить другие типы, например ягоды и система сама будет создавать корзину для ягод.
Те же яйца - вид в профиль.
ну используйте наследование или интерфесы

Старый 22.04.2013, 19:10
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 6  
Ответить с цитированием
chamele0n

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
чушь какая, вектор для того и создан чтобы было строгое соответствие, если тебе надо винегрет в одном месте используй Array, который ведет себя также как и вектор
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

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

Регистрация: Feb 2011
Сообщений: 431
Лучше использовать интерфейсы как посоветовал Sync, если нужно ложить в корзины не всё подряд, а объекты определённых типов.

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

Регистрация: Mar 2009
Сообщений: 37
Интерфейсами уже и начал делать, спасибо всем за информацию! chamele0n: необходим не винегрет в одном массиве данных. В каждом векторе хранятся данные лишь одного типа.

Старый 22.04.2013, 20:41
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 9  
Ответить с цитированием
Akopalipsis
Banned

Регистрация: Mar 2013
Сообщений: 1,864
Код AS3:
var vec:Vector.<Sprite>;
var vec:Vector.<Number>;
так менять? а они там вроде только одного типа и могут быть...

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

Регистрация: Feb 2013
Сообщений: 176
имхо, ТС сам не понимает что и зачем, но твердо убежден что вектор ему необходим.

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

Теги
Vector.<T> , Обобщения

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

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


 


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


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