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

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

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

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию SkinnableDataContainer + LayoutBase + useVirtualLayout - не создаются элементы

Здравствуйте
Создал SkinnableDataContainer, назначил ему лэйаут (LayoutBase)
Если включить useVirtualLayout=true у лэйаута - НЕ создаются элементы в этом ДатаКонтейнере, если useVirtualLayout=false - создаются

Что дописать нужно в лэйауте ?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
LayoutBase не предназначен для непосредственного использования, только для создания собственных layout.
Цитата:
Что дописать нужно в лэйауте ?
Как минимум переписать метод updateDisplayList, в котором описать как будут расставляться элементы.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 28.10.2011, 21:40
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 3  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
а если элементы сами знают о своих координатах ? в itemRenderer приходит data с координатами для элемента
Как тогда ?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
BasicLayout
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 28.10.2011, 22:06
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 5  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Цитата:
Сообщение от alatar Посмотреть сообщение
BasicLayout
ээх, не поддерживает он useVirtualLayout
Код:
Error: BasicLayout doesn't support virtualization.
Пошел немного по-бругому пути, но все равно рендереры сразу все создаются

Код AS3:
<s:BorderContainer>
   <s:DataGroup width="500" height="420" 
    dataProvider="{_model.userProjects}"
       itemRenderer="itemRenderers.TheWallIR">
    <s:layout>
     <layouts:CustomBasicLayout useVirtualLayout="true"/>
    </s:layout>
   </s:DataGroup>
  </s:BorderContainer>
рендерер:
Код AS3:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    autoDrawBackground="false"
    x="{_data.position.x}"
    y="{_data.position.y}"
    creationComplete="itemrenderer1_creationCompleteHandler(event)">
 <fx:Script>
  <![CDATA[
   import mx.events.FlexEvent;
 
   import Project.ProjectVO;
 
   [Bindable]
   protected var _data:Object;
 
   override public function set data(value:Object):void
   {
    _data=value;
    trace("IR data="+_data);
   }
 
   protected function itemrenderer1_creationCompleteHandler(event:FlexEvent):void
   {
    trace("ir creation complete "+_data.position.x+" "+_data.position.y);
   }
  ]]>
 </fx:Script>
 
 <s:Group width="100%" height="100%">
 
  <s:Group id="maskGroup" width="300" height="300">
   <s:Rect width="100%" height="100%" radiusX="6" radiusY="6">
    <s:fill>
     <s:SolidColor color="0xff0000"/>
    </s:fill>
   </s:Rect>
  </s:Group>
  <s:Image id="image" source="{_data.compill}" 
     width="300" 
     height="300"
     mask="{maskGroup}"/>
 </s:Group>
 
</s:ItemRenderer>
лэйаут:
Код AS3:
package layouts
{
 import mx.core.IVisualElement;
 
 import spark.layouts.BasicLayout;
 import spark.layouts.supportClasses.LayoutBase;
 
 public class CustomBasicLayout extends LayoutBase
 {
  protected var _index:uint;
 
  public function CustomBasicLayout()
  {
   useVirtualLayout=true;
   super();
  }
 
  override public function updateDisplayList(width:Number, height:Number):void 
  {
   var count:int = target.numElements;
 
   for (var i:uint = 0; i < count; i++) 
   {
    var element:IVisualElement = target.getVirtualElementAt(i);
    var elementPosBoundsX:Number=element.getLayoutBoundsX()+element.getLayoutBoundsWidth();
    var elementPosBoundsY:Number=element.getLayoutBoundsY()+element.getLayoutBoundsHeight();
 
    element.setLayoutBoundsSize(element.getPreferredBoundsWidth(), element.getPreferredBoundsHeight());
 
    if(element.getLayoutBoundsX()<target.getLayoutBoundsX() || element.getLayoutBoundsY()<target.getLayoutBoundsY() || elementPosBoundsX>target.getLayoutBoundsWidth() || elementPosBoundsY>target.getLayoutBoundsHeight())
    {
     trace("ELEMENT outside bounds !!!");
     element.includeInLayout = false;
    }
    else
    {
     trace("ELEMENT inside bounds !!!");
     element.includeInLayout = true;
    }
   }
  }
 }
}
9 элементов в базе и все 9 создаются все равно
трэйс:
Код:
ir creation complete 260 -120
ir creation complete 690 50
ir creation complete -15 -138
ir creation complete 206 -504
ir creation complete 203 -350
ir creation complete 721 705
ir creation complete 0 0
ir creation complete 145 17
ir creation complete 380 210
почемуууу ? Что я не так делаю ?


Последний раз редактировалось djyamato; 29.10.2011 в 07:49.
Старый 29.10.2011, 23:07
xsar вне форума Посмотреть профиль Отправить личное сообщение для xsar Найти все сообщения от xsar
  № 6  
Ответить с цитированием
xsar

Регистрация: Mar 2011
Сообщений: 29
попробуйте ItemRendererFunction (вроде так называется)

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

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

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


 


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


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