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

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

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

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
По умолчанию Как сослаться на свойство объекта?

Доброго времени суток.
Подскажите пожалуйста: можно-ли сохранить в переменной ссылку на какое-либо свойство определенного объекта?
что-то наподобие:
Код:
private var obj_prop:Object;
public function myClass(o:Object, p:String){
	obj_prop=o[p];
}

protected function setPropValue(v:uint):void{
	obj_prop=v;
}
__________________
А я Томат.

Старый 02.12.2007, 10:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ссылки делаются только на данные сложного типа, такие как Array, Object и т.п. Number, String, Boolean, int, uint не могут иметь ссылок на себя.

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

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Пасиб.
__________________
А я Томат.

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

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
а у меня почему то не получается сослаться на XML или XMLList
правда ссылки уменя внутри конструктора второго класса, а XML в первичном конструкторе первого класса.

короче код Index.as:
Код:
package {
	import flash.display.*;
	import flash.xml.*;
	public class Index extends Sprite {
		public var someXML:XML;
		public function Index ():void {
			this.someXML=new XML (<xml y="666"/>);
			var test:Test=new	Test(this);
		}
	}
}
import flash.display.*;
import flash.xml.*;
class Test extends Sprite {
	public var parentXML : XML;
	
	public function Test (Parent:Object):void {
		this.parentXML = Parent.someXML;
		trace (this.parentXML.@y);	// оригинал
		
		// шаг 1
		this.parentXML.@y =777;
		trace (Parent.someXML.@y); // покажет 777 - значит ссылка пашет
		// шаг 2
		Parent.someXML.@y = 888;
		trace (this.parentXML.@y); // покажет 888 - значит ссылка пашет
		// шаг 3
		Parent.someXML = new XML(<xml y="444"/>);
		trace (this.parentXML.@y); // покажет 888 - значит ссылка СЛОМАЛАСЬ
		// шаг 4
		this.parentXML = Parent.someXML;
		trace (this.parentXML.@y); // покажет 444 - ссылка пашет
		// шаг 5
		this.parentXML = new XML(<xml y="333"/>);
		trace (Parent.someXML.@y); // покажет 444 - ссылка сломана
	}
}
в принципе как получается что ссылка теряется на шаге 3 и 5 я представление имею - вопрос как такого избежать? чтобы присвоение нового объекта было ссылающемуся объекту а не ссылке.

Старый 17.01.2008, 20:07
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну все верно, new XML возвращает ссылку на новый объект. А parentXML продолжает ссылаться на старый объект, как ни в чем ни бывало.
Избежать — сделать биндинг на сеттерах и геттерах, только зачем оно надо — не представляю. И не понимаю, зачем создавать две ссылки на один объект, чтобы потом иметь геморрой с ними…

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

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
сделать биндинг на сеттерах и геттерах - это что ты имеешь ввиду?
сделать что то типа ?
Код:
public function set parXML (xml:XML):void {
this.Parent.someXML = xml;
}
public function get parXML ():XML{
return this.Parent.someXML;
}
ну да идея неплохая

у меня например есть общая XML где хранятся всякие данные..
есть много конструкторов классов, которые по разному обрабатывают разные элементы этой XML. причём например разные конструкторы могут использовать один и тот же нод. Ну там стили к тексту с помощью CDATA, сам текст, стили элементов по которым рисовать окна и т.д.
вот и хочу чтобы загрузив например новую XML с новыми данными , ссылки на этот общий XML Не терялись. А иначе получается нет обновления.

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

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

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


 


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


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