2009-06-26 2 views
0

Я работаю с CoverFlow library by Doug McCune.Добавление компонентов в CoverFlow in Flex

В приведенном примере он создал несколько панелей внутри CoverFlowContainer. Есть и другие примеры того, как он заполняет покрытие из RSS-канала на странице, указанной выше, но он не включает в себя источник для них :(

В конечном итоге я получаю данные из веб-службы, чтобы добавить к обложке Я начинаю с этим простым примером:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center" verticalAlign="middle" xmlns:containers="com.dougmccune.containers.*" creationComplete="init()"> 
<mx:Script> 
    <![CDATA[ 

     import mx.controls.TextArea; 

     public var articlePanel:Panel = new Panel(); 
     public var articleTextArea:TextArea = new TextArea(); 

     private function init() : void 
     { 
      articlePanel.addChild(articleTextArea); 
      articlePanel.title = "test tile" 
      articleTextArea.text = "article1" + "\n" + "www.article.com" + "\n" + "hello this is article 1"; 
      coverflow2.addChild(articlePanel); 
     }  
    ]]> 
</mx:Script> 

<mx:VBox id="box" verticalGap="0" height="306" width="100%" maxWidth="600" maxHeight="300" > 

      <containers:CoverFlowContainer id="coverflow2" width="100%" height="244" 
      horizontalGap="40" borderStyle="inset" backgroundColor="0x000000" 
      segments="6" reflectionEnabled="true"> 

      <mx:Panel id="testpanel" width="200" height="200" title="Mxml title"> 
       <mx:DataGrid width="100%" height="100%"> 
        <mx:columns> 
         <mx:DataGridColumn headerText="Column 1" dataField="col1"/> 
         <mx:DataGridColumn headerText="Column 2" dataField="col2"/> 
         <mx:DataGridColumn headerText="Column 3" dataField="col3"/> 
        </mx:columns> 
       </mx:DataGrid> 
      </mx:Panel> 

      <mx:Panel id="buttonpanel" width="200" height="200" title="Mxml title"> 
       <mx:Button id="myButton" label="Change title" click="buttonpanel.title = ('hello') "/> 
      </mx:Panel> 
     </containers:CoverFlowContainer>     
    </mx:VBox> 
    </mx:Application> 

Я определил несколько панелей в MXML и установите creationComplete=init() так, чтобы новая панель я создал в ActionScript будет добавлена ​​в контейнер CoverFlow

.

Когда я запускаю приложение, он отображает две предопределенные панели, но не та, которую я создал в ActionScript.

Любые идеи? Есть ли лучший способ сделать это?

ответ

0

Fixed это, первый определяющий Coverflow контейнер с ничего в нем:

<containers:CoverFlowContainer id="coverflow" width="100%" height="244" 
       horizontalGap="40" borderStyle="inset" backgroundColor="0x000000" 
       reflectionEnabled="true"/> 

В разделе ACTIONSCRIPT я получить массив из веб-службы и для каждого элемента массива, я создаю панель. Важно, чтобы дать каждой панели ширину и высоту в противном случае он будет показывать только один элемент в CoverFlow или вообще никаких элементов:

articlePanel.width = 200; 
articlePanel.height = 200; 
2

вы можете попробовать тй: Repeater компонент

<mx:HTTPService id="srv" url="pics.xml"/> 
<ns2:CarouselContainer id="cf" width="100%" height="303" horizontalGap="40" 
         segments="6" reflectionEnabled="true" angle="10" > 

    <mx:Repeater id="r" dataProvider="{srv.lastResult.images.image}"> 
     <mx:Canvas width="200" height="200"> 
      <mx:Image source="{r.currentItem.src}"/> 
     </mx:Canvas> 
    </mx:Repeater> 

</ns2:CarouselContainer> 
Смежные вопросы