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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.07.2011, 12:24
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 21  
Ответить с цитированием
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от kackbip Посмотреть сообщение
если заранее известно, что конструкторы все таки не будут иметь параметров
...и не потребуется никакая другая инициализация после отработки конструктора -- то да, можно и без фабрики.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 01.07.2011, 12:29
FinalBoss вне форума Посмотреть профиль Отправить личное сообщение для FinalBoss Найти все сообщения от FinalBoss
  № 22  
Ответить с цитированием
FinalBoss

Регистрация: Feb 2010
Сообщений: 9
Всем спасибо за помощь!

Мне нужно чтобы массив заполнялся элементами указанного мной типа, мувиклипами, спрайтами и т.п. Тип задается через параметр. Я хочу сделать это через класс, расширить класс Array добавив в него функцию add(className:Class, num:int), чтобы он мог дополнять себя объектами className в количестве num объектов.

- конструкотры не будут иметь параметров
- на этапе компиляции класс известен

Попытался составить свой класс, но не знаю как сделать чтобы он вел себя как обычный Array. Мне нужен обычный Array с функцией add, подскажите как должно выглядеть? Спасибо!

Код AS3:
package {
	public class GArray extends Array {
 
		public function GArray():void {
		}
 
		public function add(className:Class, num:int):void {
			for (var i:int = 0; i < num; i++) {
				this.push(new className());
			}
		}		
	}
}


Последний раз редактировалось FinalBoss; 01.07.2011 в 12:40.
Старый 01.07.2011, 12:45
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 23  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Crazy, спасибо за урок.(серьезно)

FinalBoss, ваш пример должен быть рабочим.

Старый 01.07.2011, 13:11
FinalBoss вне форума Посмотреть профиль Отправить личное сообщение для FinalBoss Найти все сообщения от FinalBoss
  № 24  
Ответить с цитированием
FinalBoss

Регистрация: Feb 2010
Сообщений: 9
Цитата:
Сообщение от kackbip Посмотреть сообщение
FinalBoss, ваш пример должен быть рабочим.
Но он не рабочий, вот что выдает:

ReferenceError: Error #1069: Не удалось найти свойство 0 в GArray; отсутствует значение по умолчанию.
at Array$/_join()
at Function/<anonymous>()
at global/trace()
at Main()

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Я никогда не пробовал расширять массив.
Попробуйте добавить модификатор dynamic своему классу.

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

Регистрация: Feb 2010
Сообщений: 9
Цитата:
Сообщение от kackbip Посмотреть сообщение
Я никогда не пробовал расширять массив.
Попробуйте добавить модификатор dynamic своему классу.
Во! Получилось, спасибо за подсказку
А так же спасибо всем участникам дискусии!

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
А вам есть разница, писать
Разница есть, если работать с разными аппдоменами.

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

Теги
array , Vector массив
Опции темы
Опции просмотра

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

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


 


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


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