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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.07.2010, 14:57
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 1  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию обращение к stage из дополнительного класса

в главном классе создаю объекты, располагаю их на сцене

Код AS3:
package
{
	import flash.display.*;
	import flash.events.Event;
	//import MoveObj.*;
 
	public class WebSite extends MovieClip
	{
		public var layer1:Full_tree;
		public var layer2:Bush;
		public var layer3:Cloud;
		public var moveL:MoveObj;
 
		public function WebSite():void
		{
			if(stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		private function init(evt:Event = null):void
		{
			trace(stage.stageHeight)
 
			layer3=new Cloud();
			stage.addChild(layer3);
			layer3.x=stage.stageWidth/1.5;
			layer3.y=stage.stageHeight/2;
 
			layer2=new Bush();
			stage.addChild(layer2);
			layer2.x=stage.stageWidth/2;
			layer2.y=stage.stageHeight+200;
 
			layer1=new Full_tree();
			stage.addChild(layer1);
			layer1.x=stage.stageWidth/2;
			layer1.y=stage.stageHeight;
 
			moveL=new MoveObj();
		}
	}
}
делаю дополнительный класс, который будет двигать созданные объекты, но не получается обратиться к сцене
Код AS3:
package
{
	import flash.events.Event;
	import flash.display.*;
 
	public class MoveObj
	{		
		public function MoveObj()
		{
			trace(stage.stageHeight)			
		}
	}
}

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Передайте ссылку на stage в класс MoveObj
Код AS3:
moveL=new MoveObj(stage);
//
public function MoveObj(stage:Stage)
{
	trace(stage.stageHeight)			
}

Старый 02.07.2010, 15:14
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 3  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
спасибо за совет, получилось!

Добавлено через 14 минут
Цитата:
Сообщение от Bgg Посмотреть сообщение
Передайте ссылку на stage в класс MoveObj
пытаюсь передать подобным способом ссылки на объекты, не получается:
Код AS3:
moveL=new MoveObj(stage,layer3,layer2,layer1);
//
 
public function MoveObj(stage:Stage,layer1:Full_tree,layer2:Bush,layer3:Cloud)
или нужно писать так:
Код AS3:
public function MoveObj(stage:Stage,layer1:MovieClip,layer2:MovieClip,layer3:MovieClip)
Добавлено через 45 минут
разобрался, всем спасибо!

Старый 23.07.2010, 01:45
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 4  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
привет
я вот тоже столкнулся с такой задачей

передаю stage при вызове функции из другого класса = не принимает

так как в предидущем примере

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Что значит "не принимает"? Какая ошибка? Код?

Старый 23.07.2010, 01:56
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 6  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
в классе коснтруктора создаю экземпляр другого класса и вызываю функцию
(на сцене уже полно всего)

Код AS3:
var _scrllBar:_scrllBar = new _scrllBar();				
 
_scrllBar.addScrollBar(stage);
 
addChild(_scrllBar);
в другом принимаю

Код AS3:
 
               var _stage:Stage;
                 public function addScrollBar(_stage:Stage)
			{
 
				this._stage = _stage;
		}

Старый 23.07.2010, 02:17
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var _scrllBar:_scrllBar = new _scrllBar();
Переменную как-то по-другому, видимо, назвать надо.
trace(stage) что говорит?
Названия классов пишутся с большой буквы и без всяких черточек. Локальные переменные и параметры тоже без знака подчеркивания.

Старый 23.07.2010, 02:51
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 8  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
ой
это я тут писал не копировал и ошибся
а подчеркиваю я экземпляры и переменные которые приходят в параметрах
(а вот с классами никак не привыкну)
итак делаю трейс


в классе конструкторе перед вызовом функции
Код AS3:
trace(stage);
_scrllBar.addScrollBar(stage);
==== [object Stage]

в классе приемнике
Код AS3:
var _stage:Stage;
                 public function addScrollBar(st:Stage)
			{
                                trace(st);
				_stage = st;
 
		}
==== пусто даже нету пробела

мистерика

Старый 23.07.2010, 02:58
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 9  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
==== пусто даже нету пробела
Видимо, trace(st), вообще, не вызывается.

Старый 23.07.2010, 03:04
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 10  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5

иногда трейсится [object Stage]

(не я проверял простым трейсом функция вызывается)

Добавлено через 42 секунды
в классе конструктора трейс идет каждый раз
а вот в вызываемом классе как то странно

Добавлено через 8 минут
голова моя друшляк

я вызывал функцию в которой вешал листненр на стейдж перед тем как было присвоение
появлялась ошибка поэтому и трейса не было
а когда закомментил эту функцию чтобы не мешала пока трейс появился

урра все работает
udaaff извините что ломал вам мозк
спаисбо огромное за поддержку


Последний раз редактировалось 3p.station; 23.07.2010 в 03:16.
Создать новую тему Ответ Часовой пояс GMT +4, время: 08:55.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
stage , класс , обращение , сцена
Опции темы
Опции просмотра

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

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


 


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


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