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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.06.2007, 20:26
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 1  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
По умолчанию Работа с массивами. (addProperty)

День добрый.
Помогите пожалуйста разобраться с сабжем.
Есть желание каждому из элементов массива присвоить свойство "Prop"(Boolean), которое, по-умолчанию,= false. К сожалению, в хелпе мало информации по addProperty. Подскажите пожалуйста, как это сделать.

Нерабочий код:
Код:
import mx.core.UIObject;
class classes.C extends UIObject{
	public var arr:Array;
	public function C(){
		arr=[];
		arr.addProperty("Prop", arr.getProp, arr.setProp);

		arr.setProp = function(p:String):Void {
trace("Добавляем свойство: " + p);
			if(p=="true"){this.Prop = true;}else{this.Prop = false;}
		};

		arr.getProp = function():Boolean {
    		return this.Prop;
		};

trace(arr.Prop)	
		arr[3].Prop="true";
trace(arr[3].Prop);
	}
}

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Код:
arr[i] = {prop:true};

Старый 14.06.2007, 22:18
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 3  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
2 BigDan:
Вы не ответили на мой вопрос. Про многомерные массивы я в курсе. Вопрос в следующем:
1.как задать свойства элемента массива?
2.как задать свойство-default для всех элементов массива?

грубо говоря, при трассировке хочется видеть следующее:

Код:
arr[1]=7;
trace(arr[1]+";  "+String(arr[1].Prop)); //"7;  false"

arr[1]=5;
arr[1].Prop=true;
trace(arr[1]+";  "+String(arr[1].Prop)); //"5;  true"

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
1.я тебе уже отписал во втором посте.
2.пройтись циклом по всем элементам.

Старый 14.06.2007, 22:32
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 5  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
1.Не катит. прочитай что мне нужно увидеть при трассировке.
2. А что, нельзя чтобы при создании нового элемента массива это свойство было установлено у него дефолтом?
Что-нить типа arr.constructor{prop:false}

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Цитата:
А что, нельзя чтобы при создании нового элемента массива это свойство было установлено у него дефолтом?
Что-нить типа arr.constructor{prop:false}
Можно написать свой класс(наследник Array) и реализовать это в нем.

Старый 15.06.2007, 01:20
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
имхо нельзя такое реализовать вовсе, в смысле нельзя простому типу дать свойство:
arr[1]=5;
arr[1].Prop=true;
//////
5.true ?

Старый 15.06.2007, 06:35
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 8  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
2 silin: звучит разумно..
наследник Array делать бессмыслено т.к. проблема не в нем, а на уровне его элементов, а задать их свойства у меня не получилось (2 All: буду крайне признателен, если кто-нибудь кинет рабочий пример решения вопроса данным способом).
Обошел проблемку немного с другой стороны - решил сделать класс-наследник String, обладающий свойством "prop" и экземпляры данного класса помещать в массив.. Вроде звучит здраво, но реализовать не получается.. Укажите пожалуйста на ошибку в коде.


Код:
	public function C(){
		arr=[];
		function newstr(){
			this.prop="!!";
			this.txt="123456"			
			return this.txt;
		}
		newstr.prototype= new String;
		var c=new newstr;
		trace(c +";   "+ c.txt +";   "+ c.prop); //Имеем:    [object Object];   123456;   !!
	}						//Хочется:  123456;   123456;   !!

Старый 15.06.2007, 09:22
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
непонятно чего ты хочешь реализовать..
повторюсь, нельзя организовать свойство у простого типа, только у наледника Object
т.е. елементами твоего массива должны быть объекты, для которых определены prop, value, txt или чего еще захочешь, о чем тебе BigDan сразу и сказал..
если нужно дефолтовое значение, ничего не мешает его определить
Код:
class Element {
	var prop:Boolean=false;
	var value:Number;
	function Element(val:Number){
		value=val;
	}
}
Код:
var arr=[];
arr[1]=new Element(7);
trace(arr[1].value+";  "+arr[1].prop); //7;  false

Старый 15.06.2007, 18:26
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 10  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Спасибо. Это и было нужно. Объект(наследование от String) я создал, но дефолтовое свойство пытался для него через return прописать - не получилось. Спасибо. Топик закрыт.

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

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

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


 


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


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