Aide - Recherche - Membres - Calendrier
Version complète : TileList & verticalScrollPosition
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Flex
Tonic
Bonjour à tous,

je rencontre un petit problème avec le composant TileList.

J'ai réalisé un petit exemple qui décrira ce problème :

Actionscript
 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="341" creationComplete="init()" width="446"
<mx:Panel title="TileList " height="300" width="350">
<mx:TileList width="310" height="223" id="_tilelist" maxColumns="1"></mx:TileList>
</mx:Panel>
<mx:Script>
<![CDATA[

private function init():void
{
var obj : Object;
var tab : Array = new Array();
var nbObj : Number = 100;
var pos : Number = 0;
while(pos<nbObj)
{
obj = new Object();
obj["data"]="uneDonne_"+pos;
obj["label"]="unLabel_"+pos;
tab.push(obj);
pos++;
}
_tilelist.dataProvider=tab;
_tilelist.selectedIndex = 30;
_tilelist.verticalScrollPosition = 30;
}

]]>
</mx:Script>
</mx:Application>
 


Mon problème : j'aimerais par défaut sélectionner l'une des ligne du composant, et placer la scrollbar vertical au bon endroit. La sélection marche très bien, mais le placement de la scrollbar n'est pas réalisé.
J'ai déjà utilisé cette méthode pour le composant Tree, et je ne rencontrais pas ce problème.

Y a t'il quelque chose que j'ai manqué?

Merci d'avance icon_wink.gif
elmagico
Hello,

Essaye avec la méthode scrollToIndex() du composant TileList.
Tonic
Salut elmagico,

Actionscript
 
_tilelist.scrollToIndex(30);
 


Ca ne marche pas mieux icon_sad.gif

elmagico
Hello,

Comme ceci ça marche :

CODE
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="341" creationComplete="init()" width="446">
    <mx:Panel title="TileList " height="300" width="350">
        <mx:TileList id="_tilelist" height="250" width="300"
            maxColumns="1" rowHeight="50" columnWidth="100" columnCount="1" rowCount="3">
            <mx:dataProvider>
                <mx:Array>
                    <mx:Object label="label 1" data="data 1"/>
                    <mx:Object label="label 2" data="data 5"/>
                    <mx:Object label="label 3" data="data 3"/>
                    <mx:Object label="label 4" data="data 4"/>
                    <mx:Object label="label 5" data="data 5"/>
                    <mx:Object label="label 6" data="data 6"/>
                    <mx:Object label="label 7" data="data 7"/>
                    <mx:Object label="label 8" data="data 8"/>
                    <mx:Object label="label 9" data="data 9"/>
                    <mx:Object label="label 10" data="data 10"/>
                    </mx:Array>
            </mx:dataProvider>
        </mx:TileList>
    </mx:Panel>
    <mx:Script>
        <![CDATA[
        
            private function init():void
            {
                _tilelist.selectedIndex = 5;
                _tilelist.verticalScrollPosition = 5;
            }
            
        ]]>
    </mx:Script>
</mx:Application>
Tonic
Merci elmagico.

Comment cela se fait il, que lorsque l'on affecte un dataProvider de façon dynamique, celui-ci ne marche pas alors?

Y a t'il un rafraîchissement de l'interface à faire?

J'ai essayé :

Actionscript
 
_tilelist.invalidateDisplayList();
_tilelist.invalidateProperties();
 


mais toujours pas de scrollbar qui se positionne...
elmagico
Hello,

Perso moi et flex ça fait 2 icon_razz.gif

Mais iteratif qui est sur le poste, à surement une réponse icon_wink.gif
Tonic
A lalala, je viens de trouver la solution icon_smile.gif

Il est nécessaire d'attendre l'évènement FlexEvent.CREATION_COMPLETE avant de pouvoir modifier la position du scroll.

Ce qui est bizarre, c'est qu'il n'y a pas besoin d'attendre cet évènement pour que la selection soit faite correctement, mais par contre pour le scrollbar, c'est impératif !

Les mystères de Flex 2 icon_razz.gif
bnuitrare
salut
le verticalescrollposition= 30 !! ça te le positionne sur l'index 30 ou on doit passer des pixels ????
merci
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.