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

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

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

Регистрация: Dec 2011
Адрес: Беларусь, г. Минск
Сообщений: 50
Отправить сообщение для RhPlus с помощью ICQ Отправить сообщение для RhPlus с помощью Skype™
Post Вывод предупреждения поверх всех остальных объектов

Добрый день, господа флешеры.
Вопрос такой, делал примитивную рисовалку из официального мануала: на сцену при помощи addChild() добавляется фигура создаваемая классом Figure
Код AS3:
var figure:Figure = new Figure(eRadius, myAlpha, color, figure); //моя фигура (радиус, альфа-канал, цвет, тип)
stage.addChild(figure) //добавление объекта на сцену;
собственно функция-конструктор класса:
Код AS3:
public function Figure (myWidth, ,myAlpha, myColor, myType) 
		{
			graphics.beginFill(myColor, myAlpha);
				switch(myType)
				{
				case "square":
					graphics.drawRect(0, 0, myWidth, myWidth);
					break;
				case "ellipse":
					graphics.drawEllipse(0, 0, myWidth, myWidth);
					break;
				}
			graphics.endFill();
		}
Так вот, потом у меня появилась необходимость выводить предупреждения (скажем в центре экрана) наподобие "вы выбрали инструмент Х", я создавал текстовое поле, а когда инструмент выбирался, выводил в это поле соотв. текст и делал его видимым. Но если в месте вывода текста уже были фигуры, то текст всегда показывался за добавленными фигурами (как бы слоем ниже), соответственно вопрос:
Как сделать так, чтобы текст всегда выводился поверх всех фигур, добавленных ранее на сцену?

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

Регистрация: Jul 2011
Сообщений: 67
Задайте глубину вашему полю numChildren-1, либо используйте разные контейнеры для фигур и предупреждений, один над другим.

Хммм вы здесь при инстанцировании figure, типом фигуры задаёте саму figure, которая должна быть null, или я чего-то не понимаю?
Цитата:
Код AS3:
var figure:Figure = new Figure(eRadius, myAlpha, color, figure); //моя фигура (радиус, альфа-канал, цвет, тип)
вообще сомнительная практика передавать тип фигуры параметром, лучше имхо породить подклассы от абстрактного класса "Фигруа", реализующие нужные формы, иначе каждый объект будет волочить за собой совершенно не нужные ему методы. + легко можно будет добавить новые, более сложные фигуры, с большим числом параметров например и т.д.

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

Регистрация: Dec 2011
Адрес: Беларусь, г. Минск
Сообщений: 50
Отправить сообщение для RhPlus с помощью ICQ Отправить сообщение для RhPlus с помощью Skype™
За совет по оптимизации - отдельное спасибо, что есть "контейнер"? Это просто спрайт
Код AS3:
container1:Sprite = new Sprite();
на который я с помощью addChild() добавляю свое текстовое поле? Что тогда должен наследовать (extends) класс? Только movieClip или что-то еще?

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
Как сделать так, чтобы текст всегда выводился поверх всех фигур, добавленных ранее на сцену?
Код AS3:
stage.addChild(...)

Старый 31.01.2012, 09:24
ProxyGreen вне форума Посмотреть профиль Отправить личное сообщение для ProxyGreen Найти все сообщения от ProxyGreen
  № 5  
Ответить с цитированием
ProxyGreen
 
Аватар для ProxyGreen

Регистрация: Jul 2011
Сообщений: 67
Цитата:
что есть "контейнер"? Это просто спрайт
Да спрайт.
Вообще лучше создавать предупреждение в тот момент когда его нужно вывести.

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

Регистрация: Dec 2011
Адрес: Беларусь, г. Минск
Сообщений: 50
Отправить сообщение для RhPlus с помощью ICQ Отправить сообщение для RhPlus с помощью Skype™
большое спасибо, проблема разрешена

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

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

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


 


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


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