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

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

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

Регистрация: Feb 2008
Сообщений: 5
По умолчанию свойство класса, вызывающего экземпляр класса

Класс A создаёт в своём конструкторе экземпляр класса B.
Мне необходимо, чтобы конструктор класса B получил значение некоторого свойства класса A, например n:Number.
Т.е. каким образом можно в конструкторе класса B получить ссылу на свойство класса A ?
На ум приходит только вариант по передаче в конструктор A параметра со значением this класса B.

класс A
Код:
package 
{
	import flash.display.*;
	public class A extends Sprite
	{
		public var n:Number=200;
		function A ()
		{
			var _b:B=new B(this);
		}
	}
}
класс B
Код:
package 
{
	import flash.display.*;
	public class B extends Sprite
	{
		function B (top)
		{
			trace (top.n);
		}
	}
}
Вопрос - какие могут быть ещё варианты?

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

Регистрация: Sep 2002
Сообщений: 30,787
Ссылок на данные простых типов не бывает.

Старый 07.02.2008, 17:54
uchineuchi вне форума Посмотреть профиль Отправить личное сообщение для uchineuchi Найти все сообщения от uchineuchi
  № 3  
Ответить с цитированием
uchineuchi

Регистрация: Feb 2008
Сообщений: 5
Цитата:
Сообщение от __etc
Ссылок на данные простых типов не бывает.
А на какие типы ссылки есть?
Повторюсь, мне надо, чтобы конструктор класса B мог получить значение какого либо свойства из класса вызывающего этот конструктор.

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

Регистрация: Sep 2002
Сообщений: 30,787
Есть ссылки на все, кроме Number, int, uint, Boolean, String.

Передавайте ссылку на экземпляр класса, а не копию значения свойства, если, конечно, необходимо это значение в дальнейшем изменять.

Старый 08.02.2008, 01:36
uchineuchi вне форума Посмотреть профиль Отправить личное сообщение для uchineuchi Найти все сообщения от uchineuchi
  № 5  
Ответить с цитированием
uchineuchi

Регистрация: Feb 2008
Сообщений: 5
Цитата:
Сообщение от __etc
Есть ссылки на все, кроме Number, int, uint, Boolean, String.
И как же мне в конструкторе B сослаться на свойство, напр.
public var arr:Array класса A ???

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

Регистрация: Sep 2002
Сообщений: 30,787
Код:
package {
    public class A {

        public function A() {
            super();
            this.arr = new Array(1,2,3,4);
        }

        public var arr:Array;
    }
}
Код:
package {
    public class B {

        public function B(arr:Array) {
            super();
            trace(arr);
        }
    }
}
Код:
new B((new A()).arr);

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
Можно ли вызвать метод класса из экземпляра (другого класса), который в этом классе был создан?
Т.е аналогично вопросу автора топа, только не свойство, а метод.
__________________
Пора бы мне уже умнеть..

Старый 09.02.2008, 12:13
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а попробывать?

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

Регистрация: Sep 2002
Сообщений: 30,787
Ноябрь, в чем проблема-то?

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

Регистрация: Jul 2005
Сообщений: 304
Отправить сообщение для Ноябрь с помощью ICQ
Код:
package main{
	import flash.display.MovieClip;
    public class base extends MovieClip {

        public function base() {
			var a = new clip();
			addChild(a);
        }
		public function tt(){
			trace ('aaa');
		}
    }
}

package main{
	import flash.display.MovieClip;
	import flash.events.Event;
    public class clip extends MovieClip {
        public function clip() {
			this.addEventListener(Event.ADDED_TO_STAGE,t);
        }
		public function t(event:Event){
			this.parent.tt();
			//parent.tt();
		}
    }
}
метод не находится
__________________
Пора бы мне уже умнеть..

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

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

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


 


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


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