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

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

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

Регистрация: Oct 2010
Сообщений: 6
По умолчанию наследование mxml от as

Есть базовый класс компонент:

Код AS3:
package myControls
{    
    import mx.core.UIComponent;      
 
    public class BaseControl extends UIComponent
    {        
    }
}
пытаюсь создать наследника на mxml

Код:
<?xml version="1.0" encoding="utf-8"?>
<myControls:BaseControl xmlns:fx="http://ns.adobe.com/mxml/2009" 
					  xmlns:s="library://ns.adobe.com/flex/spark" 
					  xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations></fx:Declarations>
	
	<s:VGroup>
         <!--- и т.д. -->
       </s:VGroup>
</myControls:BaseControl>
получаю ругань на VGroup да и на вообще любой компонент внутри:

"Объявление "VGroup" должно содержаться в рамках тега <Declarations>, так как оно не реализует "mx.core.IUIComponent". "

Простите, но VGroup наследуется от по цепочке от UIComponent, который всё реализует.
Чего я не так делаю?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
UIComponent не является контейнером (в понимании флекса). Либо наследуйтесь от SkinnableContainer, либо определить свойство по-умолчанию, куда будут добавляться детишки.

Старый 15.10.2010, 19:30
40min вне форума Посмотреть профиль Отправить личное сообщение для 40min Найти все сообщения от 40min
  № 3  
Ответить с цитированием
40min

Регистрация: Oct 2010
Сообщений: 6
ммм

добавил в базовом классе

Код AS3:
public var container:SkinnableContainer = new SkinnableContainer ();
как её в дочке юзать?

Код:
<controls:BaseControl ... >
       <controls:container>
		<s:SkinnableContainer>		
			<s:Button label="ddd" width="100" height="100"/>
                </s:SkinnableContainer>		
	</controls:container>
</controls:BaseControl>
кнопку не видно

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Под наследованием от SkinnableContainer я имел ввиду это:
Код AS3:
package myControls
{     
    public class BaseControl extends SkinnableContainer
    {        
    }
}
Что-то я не пойму чего вы пытаетесь добиться, объясните подробнее. У вас явно пробел в понимании жизненного цикла компонентов и принципов их создания.

Старый 15.10.2010, 20:29
40min вне форума Посмотреть профиль Отправить личное сообщение для 40min Найти все сообщения от 40min
  № 5  
Ответить с цитированием
40min

Регистрация: Oct 2010
Сообщений: 6
Это я понял, но вы предложили "либо | либо".
Пытался реализовать второй вариант с композицией и добавил переменную класса SkinnableContainer.

Первый в-т мне не подходит, т.к. хочу, чтобы BaseControl extends UIComponent.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Какой смысл в 4-м СДК наследоваться именно от UIComponent? Если собираетесь продолжить свои изыскания, то:
1. В компоненте создается, например, массив, который помечается как defaultProperty:
Код AS3:
[DefaultProperty("content")]
...
public var content:Array;
Переписываете метод createChildren и в нем добавляете содержимое массива в ваш компонент.

Старый 15.10.2010, 21:16
40min вне форума Посмотреть профиль Отправить личное сообщение для 40min Найти все сообщения от 40min
  № 7  
Ответить с цитированием
40min

Регистрация: Oct 2010
Сообщений: 6
Не совсем понимаю, что мне даст этот массив.
В компоненте? Вы подразумеваете базовый класс?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Да базовый.
Цитата:
Не совсем понимаю, что мне даст этот массив.
А куда по-вашему компилятор должен сложить все, что вы запихнули в mxml? Вы ему никак не сообщили.

Старый 18.10.2010, 19:38
40min вне форума Посмотреть профиль Отправить личное сообщение для 40min Найти все сообщения от 40min
  № 9  
Ответить с цитированием
40min

Регистрация: Oct 2010
Сообщений: 6
ага, вроде разобрался, спасибо

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
ага, вроде разобрался, спасибо
Ну и что сделано? У меня тоже была подобная проблема, пришлось обходить стороной.

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

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

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


 


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


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