Ich habe eine Komponente erstellt, die wie ein Viewstack funktioniert, aber die nächste Indexkomponente wird von einer der vier Seiten eingefügt. Ich habe es gut genug funktioniert, dass es akzeptabel ist, aber ich möchte es effizienter machen.Glatte Gleitanimation in Flex mit großen Mengen an Komponenten
Momentan verwende ich ein Canvas als Basiskomponente, ich erstelle einen Snapshot der aktuellen Ansicht mit einem ImageSnapshot (new Bitmap(ImageSnapshot.captureBitmapData(this))
), und ich schiebe den neuen Index über das Bild bei Indexänderung.
Ich bin im Grunde auf der Suche nach Vorschlägen, wie man das besser macht. Wenn ich das Image nach dem Laden der Komponente und nach der Folie nehme, habe ich die anfänglich abgestumpften Bewegungen auf ein Minimum reduziert, aber normalerweise verwenden wir dies für den Übergang von Rastern, so dass es fast immer langsam auf den ersten oder ersten paar Dias ist.
Hier ist, was einige davon wie bisher aussieht:
private function creationComplete(e:Event):void
{
tmpImage.source = new Bitmap(ImageSnapshot.captureBitmapData(this));
}
public function set selectedIndex(value:int):void
{
if(_selectedIndex == value + 1)
return;
_selectedIndex = value+1;
var obj:UIComponent;
tmpImage.height = height;
tmpImage.width = width;
tmpImage.visible = true;
tmpImage.x = 0;
//tmpImage.includeInLayout = true;
for (var i:int = 1; i < numChildren; i++)
{
obj = UIComponent(getChildAt(i));
//obj.x = width;
if(i == _selectedIndex){
obj.visible = true;
objDisplay = obj;
}
else
obj.visible = false;
}
mv1.target = tmpImage;
mv2.target = objDisplay;
switch (direction)
{
// X/Y sliding logic
}
parEfect.play();
tmpImage.source = new Bitmap(ImageSnapshot.captureBitmapData(this));
}
Wenn Sie sich fragen, ich bin für die Bild Index 0 der Leinwand verwenden, und meine benutzerdefinierten selectedIndex Offset um 1
Ich poste mehr davon, wenn es sein muss, aber ich möchte die Frage auf ein Minimum beschränken und das fasst es ziemlich zusammen.
Jede Hilfe wird sehr geschätzt! Ich möchte wirklich, dass diese Komponente besser funktioniert. Dies muss auch mit Flex 3
Warum versuchen, das Rad neu zu erfinden? Sie könnten viewstack erweitern (wobei Ihr selectedIndex ein genauer Wert wäre) und einfach Ihren mv1 und mv2 zu Ihrem showEffect und hideEffect machen. Hier ist ein Beispiel (in Flex4), das den Moves Beschleunigungsfunktionen hinzufügt: http://help.adobe.com/de_DE/flex/using/WS2db454920e96a9e51e63e3d11c0bf5fdc3-7fe2.html –
Dieser Typ hat vielleicht ein Tutorial zu einem Swipe-Effekt mit ImageSnapshot es könnte eine Hilfe sein: http://insideria.com/2009/12/flex-101-creating-an-swipeslid.html – Ryan
@jeremy Ich versuche wirklich nicht, das Rad neu zu erfinden, ich muss nur wissen, was am besten funktioniert. Ich schaue nach, wenn ich aus meinem Vaca zurückkomme. Post es als eine Antwort, wenn Sie meine Punkte wollen :-) @Bishop Ich werde das auch überprüfen, danke für den Vorschlag – wajiw