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

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

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

Регистрация: Aug 2011
Сообщений: 65
Question Как перебрать публичные свойства класса?

Добрый день, как можно перебрать все публичные свойства класса? Если пишу такой код:
Код AS3:
for (var s:String in data) {
            this[s] = data[s];
            trace('s = ' + s);
        }
где data:MyClass, то ничего не печатается, переменные не видны. Я пробовал наследовать класс от объекта даже, пробовал делать переменные публичные константы, статические переменные и константы. Ничего не помогло. Или я могу перебрать только те переменные которые создаю динамично?

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Код AS3:
import flash.utils.describeType;
 
var test: Sprite = new Sprite();
 
var description:XML = describeType(test);
var variables:XMLList = description..accessor;
 
for each(var variable:XML in variables) {
	trace(variable.@name + ' => ' + test[variable.@name]);
}

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Или я могу перебрать только те переменные которые создаю динамично?
Хелп:
Цитата:
for..in инструкция
Выполняет итерацию через динамические свойства объекта или элементы массива и выполняет инструкцию statement для каждого свойства или элемента. Свойства объекта не хранятся в определенном порядке, поэтому могут отображаться в произвольной последовательности. Фиксированные свойства, например переменные и методы, определенные в классе, не перечисляются в инструкции for..in. Для получения списка фиксированных свойств используйте функцию describeType(), которая находится в пакете flash.utils.
Цитата:
for each..in инструкция
Выполняет итерацию через элементы коллекции и выполняет инструкцию statement для каждого элемента. Инструкцию for each..in, введенную в составе расширений языка E4X, можно использовать не только для объектов XML, но также для объектов и массивов. Инструкция цикла for each..in выполняет итерацию только через динамические, а не фиксированные, свойства объекта. Фиксированным является свойство, являющееся частью определения класса. Для использования инструкции for each..in с экземпляром класса, определенного пользователем, необходимо объявить класс с атрибутом dynamic.
__________________
Reality.getBounds(this);

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

Регистрация: Aug 2011
Сообщений: 65
Alexandrratush, Wolsh, спасибо огромное. Заработало, теперь наконец понял что и как.

Старый 19.02.2014, 22:58
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 5  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Не в первый раз мне попадается слово accessor, это условное обозначение или что?
Что значит вот эта строчка?
Код AS3:
var variables:XMLList = description..accessor;

Старый 19.02.2014, 23:00
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Это намекает на E4X в XML, полученной через describeType().
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 19.02.2014, 23:07
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 7  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
То есть можно получить все поля с свойств, но самого accessor не существует? Этим словом просто говорят, что можно использовать ...variable или ...method?
Код AS3:
describeType(object).variable.@name

Старый 19.02.2014, 23:36
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
accessor это геттер и (или) сеттер, в зависимости от флагов read или write или read/write.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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