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

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

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

Регистрация: Sep 2009
Сообщений: 39
По умолчанию Доступ к тексту из класса

Здравствуйте. Пытаюсь изменить текстовое поле из класса, но не выходит. У меня в библиотеке есть клип Score, который содержит динамический текст, instance name - scoreTxt, главный класс - Main, а через класс Player я собственно пытаюсь изменить текст.

Main
Код AS3:
package {
	import flash.display.MovieClip;
 
	public class Main extends MovieClip {
		public static var score:Score;
		private var player:Player;
 
		public function Main() {
			player=new Player();
 
			score=new Score();
			addChild(score);
 
			this.x=stage.stageWidth/2;
			this.y=stage.stageHeight/2;
		}
	}
}
Score
Код AS3:
package {
	import flash.display.MovieClip;
 
	public class Score extends MovieClip {
 
		public function Score() {
 
		}
 
		public function updateScore():void {
			scoreTxt.text="123";
			trace("123");
		}
	}
}
Player
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class Player extends MovieClip {
		private var score:Score=new Score();
 
		public function Player() {
			addEventListener(Event.ENTER_FRAME, doSmth);
		}
 
		public function doSmth(e:Event):void {
			score.updateScore();
		}
	}
}

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

Регистрация: Nov 2005
Сообщений: 1,155
Уфффф, вы тут намесили
Создали два экземпляра Score - в Main и в Player. У вас отображается тот, что создан в Main, а приписано событийное изменение тому, что в Player.
Сделайте так
Код AS3:
package {
	import flash.display.MovieClip;
 
	public class Main extends MovieClip {
		public static var score:Score;
		private var player:Player;
 
		public function Main() {
			player=new Player();
                                      addChild(player);
			//score=new Score(); убрать
			//addChild(score);
 
			this.x=stage.stageWidth/2;
			this.y=stage.stageHeight/2;
		}
	}
}
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class Player extends MovieClip {
		private var score:Score;
 
		public function Player() {
                                     score=new Score();
                                     addChild(score);
		           addEventListener(Event.ENTER_FRAME, doSmth);
		}
 
		public function doSmth(e:Event):void {
			score.updateScore();
		}
	}
}


Последний раз редактировалось flash33; 24.09.2009 в 01:11.
Старый 24.09.2009, 01:31
FX2000 вне форума Посмотреть профиль Отправить личное сообщение для FX2000 Найти все сообщения от FX2000
  № 3  
Ответить с цитированием
FX2000

Регистрация: Sep 2009
Сообщений: 39
Спасибо большое

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

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

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


 


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


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