Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-04-2011, 11:17   #1 (permalink)
random
 
Registriert seit: Jun 2001
Beiträge: 834
ensureIndexIsVisible oder so ...

Hi,

suche eine Methode für s:TileGroup, die in etwa das, was ensureIndexIsVisible(index:int) bei der s:List, macht.

Bei der mx:List gibt es scrollToIndex(index:int) ...

Diese Methoden scrollen, bei Bedarf, den Bereich der Liste soweit, dass das Child mit dem Index index sichtbar ist.


Bei der TileGRoup finde ich das nicht, oder übersehe da ganz grob etwas
__________________
-------------------


ciao, blue
blue ist offline   Mit Zitat antworten
Alt 23-04-2011, 15:03   #2 (permalink)
Neuer User
 
Benutzerbild von denniz
 
Registriert seit: Aug 2006
Beiträge: 282
PHP-Code:
                    var theIndex:int 0;
                    var 
p:Point TileLayout(tilegroup.layout).getScrollPositionDeltaToElement(theIndex);
                    if (
!== nulltilegroup.verticalScrollPosition += p.y;  // Wenn NULL dann bereits im sichbaren bereich 
MfG
denniz ist offline   Mit Zitat antworten
Alt 23-04-2011, 17:08   #3 (permalink)
random
 
Registriert seit: Jun 2001
Beiträge: 834
Hi, danke für den geilen Ansatz.


Momentan liefert mir p jedoch nur null ab?!
__________________
-------------------


ciao, blue
blue ist offline   Mit Zitat antworten
Alt 23-04-2011, 17:50   #4 (permalink)
Neuer User
 
Benutzerbild von denniz
 
Registriert seit: Aug 2006
Beiträge: 282
Wenn point null ist dann ist das element bereits sichtbar.

Grad getestet, funktioniert einwandfrei:

PHP-Code:
<s:VGroup>
    <
s:Scroller width="200" height="100" >
        <
s:TileGroup id="tilegroup" horizontalCenter="0" verticalCenter="0">
            <
s:Button label="button 1"  />
            <
s:Button label="button 2"  />
            <
s:Button label="button 3"  />
            <
s:Button label="button 4"  />
            <
s:Button label="button 5"  />
            <
s:Button label="button 6"  />
            <
s:Button label="button 7"  />
            <
s:Button label="button 8"  />
            <
s:Button label="button 9"  />
            <
s:Button label="button 10"  />
            <
s:Button label="button 11"  />
            <
s:Button label="button 12"  />
            <
s:Button label="button 13"  />
            <
s:Button label="button 14"  />
            <
s:Button label="button 15"  />
            <
s:Button label="button 16"  />
            <
s:Button label="button 17"  />
            <
s:Button label="button 18"  />
          </
s:TileGroup>
    </
s:Scroller>
    
    <
s:Button label="Scroll to 3rd Btn">
        <
s:click>
            <![
CDATA[
                    var 
theIndex:int 2;
                    var 
p:Point TileLayout(tilegroup.layout).getScrollPositionDeltaToElement(theIndex);
                    if (
!== nulltilegroup.verticalScrollPosition += p.y;  // Wenn NULL dann bereits im sichbaren bereich 
                    
else trace("Element already visible");        
            ]]>
        </
s:click>
    </
s:Button>
</
s:VGroup
denniz ist offline   Mit Zitat antworten
Alt 25-04-2011, 11:28   #5 (permalink)
random
 
Registriert seit: Jun 2001
Beiträge: 834
Hi denniz,

bei mir ist der Aufbau etwas komplexer. Kann leider keinen Code posten wg. NDA.

Gegeben:

ViewStack
- s:List
- mx:Panel mit TileGroup

innerhalb der TileGroup wird ein XML geparst, und kleine Minipanels mit Bildern und zus. Infos geaddet.

Nach dem Parsen soll zum selektierten Minipanel gescrollt werden. Mit deiner Methode liefert p immer nur null, obwohl es nicht sichtbar ist.

Ich habe mir selbst ein Teilchen gestrickt, das die Koordinate y berechnet. Aber beim Erstaufruf wird der viewport aber nur auf y == 63 bewegt, bei allen weiteren Aufrufen wird der korrekte Wert (scroller.y == 720) geliefert und das selektierte Item ist an der richtigen Position sichtbar.

Meine Vermutung ist, dass irgendwo eine lagging entsteht ...
__________________
-------------------


ciao, blue
blue ist offline   Mit Zitat antworten
Alt 25-04-2011, 19:05   #6 (permalink)
random
 
Registriert seit: Jun 2001
Beiträge: 834
Solved

So hab's jetzt mit einer für mich nicht ganz nachvollziehbaren Lösung:


Nach dem Parsen der Minipanels kommt

...
validateDisplayList(); // sollte der FlashPlayer eigentlich selber tun ... hmm
...

danach Zuweisung der Scrollhöhe

...
verticalScrollPosition = scrollPosition; // scrollPosition ist ein getter, der die Höhe jeweils neu berechnet
...

und passt


@denniz danke für deinen Ansatz
__________________
-------------------


ciao, blue
blue ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
frames ...ja oder nein oder wie oder was ingo@247 HTML und CSS 6 14-09-2008 17:02
Ganzer Film in 5min. Bewegungstweens oder Aciontscript, Szenen oder Ebenen? Hi-Fi Flash 4 und Flash 5 6 08-12-2004 10:48
Bildschirm abfilmen in SWF-Datei (à la RoboDemo oder Turbodemo oder wie sie alle... Holger E. Am Rande 0 04-10-2004 13:29
Umriß oder Füllung? (oder) Text oder dynamischer Text? Beetle Flash MX 1 25-07-2002 11:03
Frame, Geheimnis,oder wie, oder was, oder wer???? Pabeno Flash 4 und Flash 5 5 21-08-2001 15:56


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele