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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.07.2008, 12:18
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 11  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
суть вот в чем... есть мувик, класс к нему, мувик- в нем косм.кораблик скажем.
еще есть мувик в нем нарисован лазерный луч, класс к нему, описывающий его движение, при этом в конструктор надо бы передать начальные координаты и угол, эти данные брать надо из класса отвечающего за косм.кораблик.

логично появление лазера на нажатие мыши.
ну следовательно и событие сответствующее. чтоб получить доступ к стейджу простым способом можно просто поместить обработчик событий в главный класс и передавать параметры обьекта кораблика, но еще более логично чтобы сам кораблик создавал эти лучи, но если он будет делать просто addChild(laser) то лазеры будут двигаться вместе с корабликом. по сему хорошо бы было чтобы кораблик отвечал за добавление лазеров, но не в себя так сказать а на главную сцену, если можно так выразится. тут то и возникает проблема обращения к стейджу, null-object говорит мне компилятор, я нашел выход, но мне кажется это не лучший вариант: передавать в конструктор класса, отвечающего за кораблик, ссылку на стейдж.
вот...

Цитата:
Сообщение от Сайлас Посмотреть сообщение
Если уж совсем нужно обязательно обращаться к стейдж, в Document Class'e создайте синглтон и обращайтесь через него...
Только надо ли так делать? Может создать какой-нибудь беттлфилд, на котором будут находиться лучи и корабли...
можно и так, согласен, вопрос просто какк лучше получить к нему доступ, чтоб туд добавлять что тои управлять всем этим хозяйством

просто вопрос в том что как лучш всего обращаться к другим обьектам...


Последний раз редактировалось etc; 06.07.2008 в 12:43.
Старый 06.07.2008, 02:32
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 12  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Вот мы и вернулись к вопросу вот этой темы: http://www.flasher.ru/forum/showthread.php?t=113576

__etc, спасибо - я как раз понял тогда, что загвоздка именно в путях. Путь к самому MovieClip'у может отличаться от его вложенности в другой как графического представления (что-то я загнул..)
__________________
Дело не в тебе

Старый 06.07.2008, 02:46
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 13  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
суть моего вопроса скорее не как а какой наилучший подход!
жду ответа от _etc...

Старый 06.07.2008, 03:05
Tfp вне форума Посмотреть профиль Отправить личное сообщение для Tfp Найти все сообщения от Tfp
  № 14  
Ответить с цитированием
Tfp
 
Аватар для Tfp

Регистрация: May 2008
Сообщений: 161
я сделал так док. класе g.stag=this//.stage
a всякие обьекты на стейже создаються глоб функцией icreate(x,y,someclass)
в которой
Код:
package {
	import flash.display.*;
	public var icreate:Function = function(_x,_y,trg:Class,layer:uint=1):DisplayObject{
			var _obj:DisplayObject=global.Master.addChildAt(new trg,layer)
			_obj.x=_x
			_obj.y=_y
			return _obj;
	}
}


Последний раз редактировалось Tfp; 06.07.2008 в 03:08.
Старый 06.07.2008, 03:11
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 15  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Можно, кстати, просто сделать глобальную функцию, которая будет возвращать ссылку на stage!

Как, кстати, в as3 описываются глобальные функции?
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 06.07.2008 в 03:12. Причина: очепятка
Старый 06.07.2008, 03:47
Tfp вне форума Посмотреть профиль Отправить личное сообщение для Tfp Найти все сообщения от Tfp
  № 16  
Ответить с цитированием
Tfp
 
Аватар для Tfp

Регистрация: May 2008
Сообщений: 161
AL.exe зачем для етого целую фкцию ? достаточно переменной )
а описываеться смотри мой предыдущий пост)

Старый 06.07.2008, 03:59
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 17  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Честно говоря, не совсем понял. В мануале говорится, что для объявления глобальной переменной достаточно объявить ее вне функции и класса, но что-то, по-моему, это не работает... или я уже совсем сонный..
__________________
Дело не в тебе

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от ramshteks Посмотреть сообщение
суть вот в чем... есть мувик, класс к нему, мувик- в нем косм.кораблик скажем.
еще есть мувик в нем нарисован лазерный луч, класс к нему, описывающий его движение, при этом в конструктор надо бы передать начальные координаты и угол, эти данные брать надо из класса отвечающего за косм.кораблик.

логично появление лазера на нажатие мыши.
ну следовательно и событие сответствующее. чтоб получить доступ к стейджу простым способом можно просто поместить обработчик событий в главный класс и передавать параметры обьекта кораблика, но еще более логично чтобы сам кораблик создавал эти лучи, но если он будет делать просто addChild(laser) то лазеры будут двигаться вместе с корабликом. по сему хорошо бы было чтобы кораблик отвечал за добавление лазеров, но не в себя так сказать а на главную сцену, если можно так выразится. тут то и возникает проблема обращения к стейджу, null-object говорит мне компилятор, я нашел выход, но мне кажется это не лучший вариант: передавать в конструктор класса, отвечающего за кораблик, ссылку на стейдж.
вот...



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

просто вопрос в том что как лучш всего обращаться к другим обьектам...
Кораблем должен управлять класс-контроллер, имеющий ссылку на stage или ещё куда-либо. Он же и будет создавать лучи.

Старый 06.07.2008, 13:37
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 19  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
Цитата:
Кораблем должен управлять класс-контроллер, имеющий ссылку на stage или ещё куда-либо. Он же и будет создавать лучи.
я думаю этот короткий путь... н мой вопрос так и не ответили... ((

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


Последний раз редактировалось iNils; 06.07.2008 в 13:44.
Старый 06.07.2008, 13:44
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 20  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
ramshteks, надо использовать кнопку , а не создавать несколько сообщений подряд.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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