Форум 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=152731)

Pian1st 22.03.2011 15:03

передать переменную в класс
 
подобное решение моей проблемы находил, но не могу у себя организовать
есть класс A и класс B нужно чтоб в классе B вывелось countscore, которое объявлено и подсчитано в классе A
и еще вопрос как сделать через глобальную переменную?
Код AS1/AS2:

public class A extends Sprite {
 public function A(){
 private function некая_функция()
 {
  countscore++;
 }
 private function update()
                {
                score.text = String(countScore);       
                }
}
 
 
 
public class B extends Sprite {
 public function B(){
                finalscore.text = String(countScore);       
}


in4core 22.03.2011 15:07

Код AS3:

public class A extends Sprite {
 public static var countScore:int = 0;
 public function A(){
 private function некая_функция()
 {
  countscore++;
 }
 private function update()
                {
                score.text = String(countScore);       
                }
}
 
 
 
public class B extends Sprite {
 public function B(){
                finalscore.text = String(A.countScore);       
}
 
____________________________________________
 
public class A extends Sprite {
 public static var countScore:int = 0;
 public function A(){
 private function некая_функция()
 {
  countscore++;
  GlobalManager.score = countscore;
 }
 private function update()
                {
                score.text = String(countScore);       
                }
}
 
 
 
public class B extends Sprite {
 public function B(){
                finalscore.text = String(GlobalManager.score);       
                finalscore1.text = String(GlobalManager.score1);       
}
 
public class GlobalManager {
 
 public static var score:int = 0;
 public static var score1:int = 0;
 ....
}


Pian1st 22.03.2011 15:16

т.е. оба способа только через глобальную переменную static?

in4core 22.03.2011 16:20

А чем плохо ?

Pian1st 22.03.2011 16:30

а передать переменную в класс? т.к. глобальные перем говорят это плохо

scarbo 22.03.2011 16:40

1)Диспатчить событие из класса А в класс В,
2)Передать в класс А ссылку на экземпляр класса В, и напрямую изменить.
3)И еще много способов, смотря какие цели преследуются.

Pian1st 22.03.2011 16:54

цель одна просто вывести в классе B переменную и все
scarbo можно поподробнее на данном примере

ChuwY 22.03.2011 17:02

Вот ответ на похожий вопрос.
Ловите в родителе событие от одного ребенка и дергаете метод второго.

Pian1st 22.03.2011 17:49

в принципе проблем не осталось - все работает, спасибо Вам
но только правильно ли это использовать глобальные переменные, просто все вокруг говорят, что глобальные перем - это зло. почему?
вот думаю самое оптимальное это
Цитата:

Передать в класс А ссылку на экземпляр класса В, и напрямую изменить.
а может создать переменную под countScore, в которой сохранять текущее значение countScore и потом передать в класс B ?

ChuwY 22.03.2011 18:00

А чем вас мой вариант не устраивает? Без глобальных переменных.


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

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