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

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

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

Регистрация: Sep 2009
Сообщений: 68
По умолчанию Можно ли изменить порядок элементов?

Заливаю мувик цветом, а потом вставляю туда динамическое текстовое поле со значением в этот мувик ( из примера на http://help.adobe.com/ru_RU/AS3LCR/F...0.0/index.html)
Получается, что если не заливать цветом, то текстовое поле видно, иначе не видно ничего, хотя и курсор меняется при наведении (значит оно там).

Можно ли как-то изменить порядок или приоритет элементов чтобы текст всё же был виден?

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
покажите как заливаете
__________________
low +

Старый 09.11.2010, 12:24
Castro вне форума Посмотреть профиль Отправить личное сообщение для Castro Найти все сообщения от Castro
  № 3  
Ответить с цитированием
Castro

Регистрация: Sep 2009
Сообщений: 68
Код AS3:
public function handleEvent(event:Event):void
		{
 
			xmlDataLoader.removeEventListener("mapRegionDataArrayLoaded", handleEvent);
			var itemCnt:uint = xmlDataLoader.mapRegionDataArray.length;
			var itemArr:Array = xmlDataLoader.mapRegionDataArray;
			for (var i:uint=0; i<=itemCnt-1; i++)
			{
				var name:String = itemArr[i].region_short.toLowerCase() + '_mc';
 
					var colorInfo:ColorTransform = new ColorTransform();
//getWinnerColor возвращает константу-цвет					
colorInfo.color = getWinnerColor(itemArr[i].winner_name.toLowerCase());
					this[name].transform.colorTransform = colorInfo;  
 
					configureLabel(this[name]);
					setLabel(itemArr[i].winner_value.toLowerCase());
			}
 
 
		}
 
		private function configureLabel(mcContainer):void {
            label = new TextField();
            label.autoSize = TextFieldAutoSize.NONE;
            label.background = false;
			label.x = -20;
			label.y = -20;
 
 
            var format:TextFormat = new TextFormat();
            format.font = "Verdana";
            format.color = 0x000000;
            format.size = 22;
 
 
            label.defaultTextFormat = format;
            mcContainer.addChild(label);
        }
		public function setLabel(str:String):void {
            label.text = str;
        }

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
вы делаете colorTransform, поэтому всему содержимому назначается цвет, в том числе и буквам, создайте для текстового поля отдельный контейнер
__________________
low +

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Судя по всему, аргумент в функции configureLabel() должен иметь тип MovieClip и это следует указывать:
Код AS3:
private function configureLabel(mcContainer:MovieClip):void {...}
Далее, что такое label? Переменная типа TextField? Тогда так:
Код AS3:
var label:TextField = new TextField();
Также, после строчки с вызовом функции getWinnerColor() вы сразу же обращаетесь к this[name], нигде предварительно не создав данный элемент. Вероятно, где-то должна быть строчка:
Код AS3:
this[name] = new MovieClip();
Попробуйте создавать контейнер для клипа, к которому вы применяете трансформацию цвета, чтобы текстовое поле под трансформацию не попадало, иными словами:
Код AS3:
var container:Sprite = new Sprite();
var clip:MovieClip = new MovieClip();
var field:TextField = new TextField();
// ...
// далее применяем к clip трансформацию цвета
// ... и
container.addChild(clip);
container.addChild(field);
this[name] = container;

Старый 09.11.2010, 13:27
Castro вне форума Посмотреть профиль Отправить личное сообщение для Castro Найти все сообщения от Castro
  № 6  
Ответить с цитированием
Castro

Регистрация: Sep 2009
Сообщений: 68
Код:
var label:TextField = new TextField();
Да, это действительно переменная типа, но я её выбросил из цитируемого кода TextField.

Код:
this[name] = new MovieClip();
this[name] - это я обращаюсь к уже существующему клипу на stage. Так что создавать по идее не надо

Но вот идея с создания ещё одного контейнера очень хороша, сейчас буду пробовать.
Всем спасибо!

Добавлено через 2 часа 26 минут
Хм. Вроде понял как но не то. Хотя я и присваиваю тексту чёрный цвет после определения цвета контейнера, оно всё равно перебивает его цветом заливки контейнера.

Код AS3:
var format:TextFormat = new TextFormat();
            format.font = "Verdana";
            format.color = 0x000000;
            format.size = 22;
Чего так?

А почему нельзя сначала залить мувик, а потом создать тектовое поле и контейнере и так же его залить через colorTransform?
Идея вроде здравая, но не работает
// в
Код AS3:
методе configureLabel
                       var txtContainer:MovieClip = new MovieClip();
			var colorInfo1:ColorTransform = new ColorTransform();
			colorInfo1.color =  0x000000;
			txtContainer.transform.colorTransform = colorInfo1; 
 
                        txtContainer.addChild(label);
			mcContainer.addChild(txtContainer);


Последний раз редактировалось Castro; 09.11.2010 в 15:54.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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