Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как получить переменную родителя (http://www.flasher.ru/forum/showthread.php?t=172702)

54321go 15.12.2011 15:35

Как получить переменную родителя
 
Создаю в классе Frame, экземпляр класса Door, вот так
Код AS3:

var door:Door=new Door();

Как из Door получить доступ к переменной класса Frame?

СлаваRa 15.12.2011 15:39

создать в Door public переменную, например.

BezDelnik 15.12.2011 15:43

в Door передать метод getSmth:
Код AS3:

var door:Door=new Door(getSmth);
 
 
private function getSmth():* {
  return smth;
}

в классе Door:
Код AS3:

private var func:Function;
public function Door(func:Function) {
  this.func = funct;
}

потом когда нужно:
Код AS3:

trace(func())


Genzo 15.12.2011 15:46

Код AS3:

var door:Door=new Door(variable);
 
//...
public function Door(direction:uint)
{
 
}
//или
class Frame{
public static var variable:uint;
 
//....
 
publc function Frame()
{
variable = 1;
}
}
//..
public function Door()
{
var i:uint = Frame.variable;
}

Вариантов много

TheBird 15.12.2011 15:52

Я делаю так -
Код AS1/AS2:

private var papa:Frame;
public function Door(frame:Frame){
papa=frame;
}


fish_r 15.12.2011 16:02

Цитата:

Сообщение от TheBird (Сообщение 1051676)
Я делаю так ...

Плохая практика - нараздаете ссылок на родителя, а потом будете голову ломать кто же из чилдов его состояние изменяет?

carrotoff 15.12.2011 16:08

Согласен с fish_r. Ребенку не стоит ничего знать о его родителе. Он должен выполнять именно свою задачу. А если в вашем приложении сложилась ситуация, когда ребенок должен получить метод родителя, то, скорее всего, у вас печальная архитектура

Genzo 15.12.2011 16:09

В продумайте лучше кто-кого и как менять должен и зачем вообще эту переменную брать из родителя и т.п.

cleptoman 15.12.2011 19:00

так передавать нужно свойство/переменную родитителя, а не всего его )

а чтоб он узнал когда и кому ее отдать используем события.


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

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