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

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

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

Регистрация: Jun 2010
Адрес: г. Майкоп, р. Адыгея
Сообщений: 27
По умолчанию UIComponent и его свойства width и height

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
					xmlns:s="library://ns.adobe.com/flex/spark"
					xmlns:mx="library://ns.adobe.com/flex/mx"
					initialize="AppInit(event);">
	<fx:Script>
		<![CDATA[
			import mx.core.UIComponent;
			import mx.events.FlexEvent;
 
			private var t1 :UIComponent = new UIComponent();
 
			private function OnMouseDown( event :MouseEvent):void{
				var UIC :UIComponent = UIComponent(event.target);
				trace("x = "+UIC.x ); //x = 50
				trace("y = "+UIC.y ); //y = 50
				trace("width = "+UIC.width ); //width = 0
				trace("height = "+UIC.height ); //height = 0
			}
 
			private function AppInit( event :FlexEvent ):void{
				t1.graphics.lineStyle( 1, 0x000000 );
				t1.graphics.beginFill( 0xee0000 );
				t1.graphics.drawRect( 0, 0, 50, 50 );
				t1.graphics.endFill();
				t1.x = 50;
				t1.y = 50;
				t1.addEventListener( MouseEvent.MOUSE_DOWN, OnMouseDown );
				addElement( t1 );
			}
		]]>
	</fx:Script>
</s:Application>
Почему ширина и высота = 0 ?
Код AS3:
trace("width = "+UIC.width ); //width = 0
trace("height = "+UIC.height ); //height = 0
Как нибудь можно сделать так, чтобы у рисованных объектов ( Sprite, SpriteVisualElement, GraphicElement, и т.д.) была высота и ширина ?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
А что вы ожидали увидеть у только что созданного, пустого UICmponent? При чем здесь Sprite, SpriteVisualElement, GraphicElement, и т.д. В чем собственно вопрос?

Старый 26.08.2010, 17:26
Bratus вне форума Посмотреть профиль Найти все сообщения от Bratus
  № 3  
Ответить с цитированием
Bratus
 
Аватар для Bratus

Регистрация: Jun 2010
Адрес: г. Майкоп, р. Адыгея
Сообщений: 27
Цитата:
Сообщение от alatar Посмотреть сообщение
А что вы ожидали увидеть у только что созданного, пустого UICmponent? При чем здесь Sprite, SpriteVisualElement, GraphicElement, и т.д. В чем собственно вопрос?
Как же пустой ?!
А эта строка кода для чего стоит?
Код AS3:
t1.graphics.drawRect( 0, 0, 50, 50 );
Поясню немного код:
1) когда приходит событие initialize у Application - рисуется квадрат на t1 ( это UIComponent ) и добавляется в приложение:
t1.addEventListener( MouseEvent.MOUSE_DOWN, OnMouseDown );
addElement( t1 )
2) в обработчике события OnMouseDown я просто делаю trace x,y, width, height нарисованного квадрата. НО ЕГО ШИРИНА И ВЫСОТА = 0

Именно в этом и состоит вопрос: почему они нулевые ?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Действительно, не заметил.
Цитата:
Именно в этом и состоит вопрос: почему они нулевые ?
width и height у UIComponent далеко не тоже самое, что у Sprite. Как вариант задайте их явно.
Либо наследуйтесь, и используя неймспейс mx_internal следите за $width, $heigth.
graphics при подсчете width и height не учитывается.


Последний раз редактировалось alatar; 26.08.2010 в 18:47.
Старый 26.08.2010, 22:03
Bratus вне форума Посмотреть профиль Найти все сообщения от Bratus
  № 5  
Ответить с цитированием
Bratus
 
Аватар для Bratus

Регистрация: Jun 2010
Адрес: г. Майкоп, р. Адыгея
Сообщений: 27
Цитата:
Сообщение от alatar Посмотреть сообщение
Либо наследуйтесь, и используя неймспейс mx_internal следите за $width, $heigth.
Можно поподробнеё про namespace mx_internal. Что это за пространство имен такое и как его пользовать?
И что за свойства с долларом ($width, $heigth, $x, $y, и т.д.) ?
Кстати, когда приложение запускаю на дебаг, то $width = 50 и $heigth = 50. НЕ НУЛЕВЫЕ! Что мне и надо!
Но как их использовать не знаю... (компилятор выдает ошибку).

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
mx_internal внутренний неймспейс флекса (адоби используют его для прикрытия сомнительных мест), используется как и любой другой неймспейс.
Код AS3:
use namespace mx_internal;
Свойства с долларом нужны для задания оригинальных свойств Sprite (т.к. они переписаны).


Последний раз редактировалось alatar; 27.08.2010 в 00:04.
Старый 27.08.2010, 10:08
Bratus вне форума Посмотреть профиль Найти все сообщения от Bratus
  № 7  
Ответить с цитированием
Bratus
 
Аватар для Bratus

Регистрация: Jun 2010
Адрес: г. Майкоп, р. Адыгея
Сообщений: 27
Хорошо, понял.
Сейчас попробую ...

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

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

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


 


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


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