Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-03-2012, 00:23   #1 (permalink)
Neuer User
 
Benutzerbild von maxiW
 
Registriert seit: Jan 2010
Ort: HH
Beiträge: 89
Question Tabelle ..Leere Zeile gelöscht .. wie rutscht der Rest der Tabelle nach oben. ?

Hi, Tetris anders rum

Meine Objecte auf der Stage haben einen y Wert. beginnend beim ersten von 70 beim Letzten 300.
Dazwischen sind Lücken. Das erstellen mit einer For-Schleife klappt. Mit dem point.x und point.y verteile ich die Objecte wunderbar.

PHP-Code:
rivate function getThumbsPosition(index:Number):Point
        
{
            var 
rowCount:Number 1;
            var 
imageWidthHeight:Number 40;
            var 
imageGap:Number 5;
            var 
thumbX:Number;
            var 
thumbY:Number;
            
thumbX = (index rowCount) * (imageWidthHeight imageGap);
            
thumbY Math.floor(index rowCount) * (imageWidthHeight/imageGap);
            
            return new 
Point(thumbXthumbY);
        } 

In einer Funktion zum Löschen eines in der Row befindlichen Objecte klicke ich auf das Object. Das Object gibt mir seinen y wert. Ich frage dann danach ab, ob es auf der Stage weitere Objecte gibt. Wenn ja dann bekommen die Objecte mit einem größeren Y-Wert 50px abgezogen. Sprich alles soll so nach oben rutschen. Klappt manchmal..


PHP-Code:
private function AnzeigeAufrückung():void
        
        
{
            
//var eTARGETyPos:Number = mouseY;
            
trace("this.mouseY         "+this.mouseY);
            
trace(getThumbsPosition(fileCount)); // fileCount ist die Anzahl der Objecte auf der Stage
            
trace("eTARGETyPos" eTARGETyPos);
            
//eTARGETyPos Variable, Nummer, global. Speichter den y Wert des Objectes das ich angeklickt habe und was erfolgreich gelöscht wurde. 


            
var point:Point getThumbsPosition(fileCount);
            
            for (var 
i:int 0this.numChildreni++)
            {
                var 
pno_:* = this.getChildAt(i);
                if (
pno_ == null ) { continue };
                
                
trace("pno_.name:   " pno_.name "     pno_Ypos:" pno_."    eDeletedFILE.Name:    " );
                
                try
                {
                    
                
                
                    
                
//    pno_.y -= 50; 
                
                // Position 2 (gelöscht ist) neue position für 3
                // Wenn No2 gelöscht ist schiebe no3....etc auf pos.2
                    
                
if (pno_.!= eTARGETyPos && pno_.eTARGETyPos ) {
                
                
trace("E-point" point.y);
                
pno_.point.x
                
pno_.point.y;
                    
                
                }
                
                    
                
trace("eTARGETyPos" eTARGETyPos);    
                
trace("eTARGETyPos" eTARGETyPos);    
                    
                
/*        // Klappt beschissen!
                    if (pno_.y > eTARGETyPos )
                    {
                        trace("pno_Ypos:   " + pno_.y)
                        pno_.y -= 50;
                        trace("PNO:   " + pno_.y);
                    }
                    */ 
                
                
}
                catch (
e:Error)
                {
                    
                    
trace("ERROR Position>>" e.toString());
                }
                
                
            }
            
        
        } 

Bin am ende.. mit dem f.latei
chees Nik
__________________
bitte nicht an die Disco lehnen.. °°
maxiW ist offline   Mit Zitat antworten
Alt 01-03-2012, 00:41   #2 (permalink)
Koda ;)
 
Benutzerbild von badnoob
 
Registriert seit: Oct 2010
Ort: Hannover
Beiträge: 213
wuerde dir vorschlagen saemtliche teile in einem mehrdimensionalen array/vector zu speichern. so kannst du einfacher auf ganze zeilen zugreifen.

kann mir nicht vorstellen, dass du in 3 wochen noch weisst, was du da eigentlich versucht hast. probier deinen ansatz zu ueberdenken
badnoob ist offline   Mit Zitat antworten
Alt 01-03-2012, 13:08   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.015
Zitat:
Zitat von maxiW Beitrag anzeigen
die Objecte mit einem größeren Y-Wert 50px abgezogen. Sprich alles soll so nach oben rutschen. Klappt manchmal..
wenn du z.b. 10 objekte hast, dann werden die 'so' positioniert,
wenn du z.b. 30 objekte hast, dann werden die 'so' positioniert, ..

es ist vollkommen unwichtig, ob in der vergangenheit objekte dazu- oder weggekommen sind.
positioniere alle aktuell vorhandene objekte neu. dabei ist es egal, ob ein objekt bereits auf der richtigen position sitzt oder erst da hin gebracht werden muss.

animiert
zuerst jedem objekt eine zielposition geben. danach in einer enter_frame schleife jeden ein stück näher an sein ziel bringen. sind alle am ziel, dann das enter_frame beenden.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (01-03-2012 um 13:15 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 01-03-2012, 13:19   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.341
Ist das alles Code von dir?
Omega Psi ist offline   Mit Zitat antworten
Alt 01-03-2012, 16:55   #5 (permalink)
Neuer User
 
Benutzerbild von maxiW
 
Registriert seit: Jan 2010
Ort: HH
Beiträge: 89
EnterFrame oder nen Timer der immer die pos. überprüft ist leider aus performance gründen != möglich.


Klar ist der Code von mir,. der ganz obere mit dem Point, hab ich aus ner bibl,.
um aus dem FileRef obj mir loader instanzen zu ziehen.

Okay die Lösung.:

PHP-Code:
    private function AnzeigeAufrückung(s:DisplayObject):void
        
{
//    trace("Delete Element: " + s.name + " - " + s.getRect(stage));
            
for (var i:int 0this.numChildreni++)
            {
                var 
s2:DisplayObject this.getChildAt(i);
                if (
s2 == null)
                {
                    continue
                }
            else if (
s2.getRect(stage).top s.getRect(stage).top)
                {
                    
//s2.getRect(stage).offset(0, -50);
                    
TweenLite.to(s2.5, {y"-60"});
                    
                    
//s2.y -= 40;
                    
stage.invalidate();
                }
//trace("Stage Element: " + s2.name + " - " + s2.getRect(stage))
            
}
        } 

Meine Learnings waren dass man mit getRect und top und offset ne menge spass haben kann.
__________________
bitte nicht an die Disco lehnen.. °°
maxiW ist offline   Mit Zitat antworten
Alt 01-03-2012, 16:58   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.015
Zitat:
Zitat von maxiW Beitrag anzeigen
EnterFrame oder nen Timer der immer die pos. überprüft ist leider aus performance gründen != möglich.
EnterFrame natürlich nur für eine animation, wenn die objekte animiert zu ihrer neuen position wandern sollen.
also ein EnterFrame anstatt deinen TweenLite's. je eins für jedes zu bewegende object.

aber egal, wenn du eine lösung hast ...
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (01-03-2012 um 17:02 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 01-03-2012, 17:05   #7 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 7.306
Zitat:
Zitat von hgseib Beitrag anzeigen
EnterFrame natürlich nur für eine animation, wenn die objekte animiert zu ihrer neuen position wandern sollen.
also ein EnterFrame anstatt deinen TweenLite's. je eins für jedes zu bewegende object.
Das dürfte IMHO kaum einen Vorteil gegen über einer performanceoptimierten Tweening-Engine, wie TweenLite bringen. Oder seht Ihr das anders?
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 01-03-2012, 23:11   #8 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.610
@ Martin: Jau ganz Deiner Meinung.
hier ein kleiner Test mit 10000 Shapes...


LG ANdré

Und in der onEnterFrame wird noch nicht mal ein easing berechnet.

EDIT: Und noch die FLA. Hab' nicht geschummelt...
Angehängte Dateien
Dateityp: swf performanceTest.swf (8,3 KB, 8x aufgerufen)
Dateityp: fla performanceTest.fla (7,2 KB, 0x aufgerufen)
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (02-03-2012 um 00:36 Uhr)
andrelehnert ist offline   Mit Zitat antworten
Alt 01-03-2012, 23:54   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.015
beruhigt euch mal wieder ;-)

maxiW hatte geschrieben: "..immer die pos. überprüft.."
ich vermute da wurde was missverstanden, so als ob ständig und ununterbrochen die position überprüft werden sollte, dabei hatte ich genau das gegenteil vorgetragen: nämlich nicht überprüfen. darauf habe ich geantwortet (versucht).
und an geschwindigkeitsoptimierung bei 10 (?) objekten untereinander zu denken ist auch irgendwie übertrieben, finde ich.


ich kann die fla von andrelehnert nicht öffnen, habe nur CS3
aber TweenLite kocht auch nur mit wasser. siehe:
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);

TweenLite das ein Event.ENTER_FRAME ausführt kann nicht schneller sein als ein script mit nur einem Event.ENTER_FRAME.
der vorteil von TweenLite liegt darin, das es schlanker ist als das Tween von flash.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (02-03-2012 um 00:07 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 02-03-2012, 00:29   #10 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.610
Bin ruhig - trinke schon den ganzen Tag Baldrian-Tee

Daß das konkret nichts mit dem Problem zu tun hat, ist klar. Aber MArtin hatte ja ne Frage gestellt...
Zitat:
TweenLite das ein Event.ENTER_FRAME ausführt kann nicht schneller sein als ein script mit nur einem Event.ENTER_FRAME.
Aber wie erklärst Du Dir dann die Unterschiede?
Berechnet TweenLite den Tweenverlauf vielleicht am Anfang komplett im Voraus?
Immerhin ist die oEF in meinem Test mit 10000 Shapes ca. 3-4x langsamer(!)

Hier das Script, damit Du das selbst mal testen kannst.

PHP-Code:
import com.greensock.TweenLite;
import net.hires.debug.Stats;

const 
NUM_SHAPES:int 10000;
const 
PIXEL_TO_MOVE:int 500;
const 
TWEEN_TIME:int 2;//sec
const SPEED:int PIXEL_TO_MOVE / (TWEEN_TIME stage.frameRate);

var 
shapes:Vector.<Shape >  = new Vector.<Shape > (NUM_SHAPES);
var 
numShapesReady:int 0;
var 
startTime:int 0;

var 
tf:TextField = new TextField();

function 
init():void
{
    for (var 
i:int=0i<NUM_SHAPESi++)
    {
        var 
sh:Shape= new Shape();
        var 
g:Graphics sh.graphics;
        
g.beginFill(Math.random()*0xFFFFFF);
        
g.drawCircle(0,0,10);
        
g.endFill();
        
sh.stage.stageWidth NUM_SHAPES i;
        
addChild(sh);
        
shapes[i] = sh;
    }
    
addChild(new Stats());
    
tf.100;
    
tf.text "Wir bewegen 10000 Objecte in 2 Sekunden über 500 Pixel";
    
tf.border true;
    
tf.width 300;

    
addChild(tf);
    
chronometerStart();
    
addEventListener(Event.ENTER_FRAMEloop);
}

function 
loop(e:Event):void
{

    for 
each (var sh:Shape in shapes)
    {
        if (
sh.PIXEL_TO_MOVE SPEED)
        {
            
sh.+=  SPEED;
        }
        else
        {
            
numShapesReady++;

        }
    }
    if (
numShapesReady == NUM_SHAPES)
    {
        
chronometerStop("onEnterFrame dauerte: ");
        
removeEventListener(Event.ENTER_FRAMEloop);
        
startTweening();
    }
}

function 
startTweening():void
{
    
numShapesReady 0;
    
chronometerStart();
    for 
each (var sh:Shape in shapes)
    {
        
TweenLite.to(sh,TWEEN_TIME,{y:0,onComplete:finishTweening});
    }
}
function 
finishTweening():void
{
    
numShapesReady++;
    if (
numShapesReady == NUM_SHAPES)
    {
        
chronometerStop("TweenLite dauerte: ");
        
numShapesReady 0;
        
chronometerStart();
        
addEventListener(Event.ENTER_FRAMEloop);
    }
}
function 
chronometerStart():void
{
    
startTime getTimer();
}
function 
chronometerStop(msg:String):void
{
    var 
now:int getTimer();
    var 
time:int now startTime;
    
tf.appendText("\n"msg+time+" ms");
    
tf.scrollV 100000;
}
init(); 
LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (02-03-2012 um 00:38 Uhr)
andrelehnert ist offline   Mit Zitat antworten
Alt 02-03-2012, 00:48   #11 (permalink)
Neuer User
 
Benutzerbild von maxiW
 
Registriert seit: Jan 2010
Ort: HH
Beiträge: 89
Auweia!

zugegeben.. ich habe mir dann auch mal die Tween* Klassen angeschaut und habe da ENTERFRAME gefunden.. .. hm.. 10.000 Objecte gegen meine max. 10 instanzen .. ist ein wenig wie bei 300.. aber gut.. ich habe dann den bewegungstween wirklich mit tweenLite gemacht.. und es gibt da keine performance probleme..

NUR der FlashBug ist jetzt neu und kostet ! !! WTF !
__________________
bitte nicht an die Disco lehnen.. °°
maxiW ist offline   Mit Zitat antworten
Alt 02-03-2012, 00:57   #12 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.610
Naja... Nicht nur nicht an die Disco, sondern auch bitte nicht zu weit aus dem Fenster lehnen...

Deine Performanceprobleme kommen ganz sicher woanders her...

Im Test treten die Unterschiede auch erst ab 3000-5000 Objecten auf(auf meinem Rechner).

ein Bug ist das sicher nicht, onEnterFrame ist eine der "Kernkompetenzen" von Flash.

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 02-03-2012, 02:14   #13 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 18.015
mal so ganz grob geändert: test (CS3) der ordner com.greensock.. fehlt natürlich
TweenLite benützt standardmässig easeOut und kommt so mit wesentlich weniger sprüngen zum ziel. deshalb ist es scheinbar so schnell.
wenn ich das richtig gezählt habe, dann benützen jetzt beide verfahren 8 sprünge. dann wäre loop geringfügig schneller.

natürlich, wer sowieso TweenLite benützt, das ist eleganter und leichter zu ändern als sich selbst was zusammen zu stricken.

und so: zeilen (CS3)
könnte eine lösung für die von maxiW angesprochene aufgabe aussehen. zum ausprobieren auf einzelne zeilen klicken
Angehängte Dateien
Dateityp: zip test.zip (13,3 KB, 3x aufgerufen)
Dateityp: zip zeilen.zip (8,0 KB, 1x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (02-03-2012 um 02:55 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 02-03-2012, 03:06   #14 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 2.659
Code:
  1. if (s2.getRect(stage).top > s.getRect(stage).top)
Du sprichst oben von Performance, und feuerst dann mit sowas rum?
  1. s.getRect(stage).top kannst du einmal berechnen, und in eine Variable speichern
  2. wenn die Objekte vernünftig ausgerichtet sind (topLeft oder center, topCenter, centerLeft, ...), kannst du viel besser mit der Position arbeiten, als mit den Bounds.
  3. Zitat:
    Zitat von hgseib Beitrag anzeigen
    es ist vollkommen unwichtig, ob in der vergangenheit objekte dazu- oder weggekommen sind.
    positioniere alle aktuell vorhandene objekte neu. dabei ist es egal, ob ein objekt bereits auf der richtigen position sitzt oder erst da hin gebracht werden muss.

Code:
  1. var s2:DisplayObject = this.getChildAt(i);
  2. if (s2 == null){...
getChildAt liefert NIE null zurück, diese Bedingung kannst du dir also sparen.

stage.invalidate(), an der Stelle wo es jetzt steht:
im schlimmsten Fall wird diese Funktion bei einem Aufruf von AnzeigeAufrückung, numChildren mal ausgeführt.
Bleistift:
  • Du hast 10 children
  • du löscht das Element an Position 0
  • stage.invalidate wird nun 9x (die neue Anzahl an children) aufgerufen
  • ergo werden auch 9 RENDER-Events gefeuert

hier noch etwas Code:
Code:
  1. package 
  2. {
  3.     import com.greensock.TweenLite;
  4.     import flash.display.DisplayObject;
  5.     import flash.display.Sprite;
  6.     import flash.events.Event;
  7.     import flash.events.KeyboardEvent;
  8.     import flash.ui.Keyboard;
  9.     /**
  10.      * ...
  11.      * @author Thomas Ersosi
  12.      */
  13.     [SWF(width="800", height="600", frameRate="40", backgroundColor="#808080")]
  14.     public class Demo extends Sprite
  15.     {
  16.         public function Demo()
  17.         {
  18.             if (stage) init();
  19.             else addEventListener(Event.ADDED_TO_STAGE, init);
  20.         }
  21.        
  22.         private function init(e:Event = null):void
  23.         {
  24.             removeEventListener(Event.ADDED_TO_STAGE, init);
  25.             // entry point
  26.             stage.scaleMode = "noScale";
  27.             stage.align = "TL";
  28.             stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
  29.         }
  30.        
  31.         private function onKeyDown(e:KeyboardEvent):void
  32.         {
  33.             switch(e.keyCode) {
  34.                 case Keyboard.SPACE:
  35.                     var c:Sprite = new Sprite();
  36.                         c.graphics.beginFill(Math.random() * 0x1000000);
  37.                         c.graphics.lineStyle(1);
  38.                         c.graphics.drawRect(0, 0, imageWidthHeight, imageWidthHeight);
  39.                     addChildAt(c, Math.random() * numChildren);
  40.                     break;
  41.                
  42.                 case Keyboard.BACKSPACE:
  43.                     if (numChildren)
  44.                         removeChildAt(Math.random() * numChildren);
  45.                     break;
  46.                    
  47.                 case Keyboard.ENTER:
  48.                     if (numChildren>1)
  49.                         setChildIndex(
  50.                             getChildAt(Math.random() * numChildren),
  51.                             Math.random() * numChildren
  52.                         );
  53.                     break;
  54.             }
  55.         }
  56.  
  57.        
  58.         //wenn die Spaltenanzahl konstant 1 bleibt,
  59.         //entferne sie komplett aus der Berechnung!
  60.         //private const rowCount:int = 1;
  61.        
  62.         private const imageWidthHeight:Number = 40;
  63.         private const imageGap:Number = 5;
  64.         private const imageOffsetXY:Number = imageWidthHeight + imageGap;
  65.        
  66.         override public function addChild(child:DisplayObject):DisplayObject
  67.         {
  68.             super.addChild(child);
  69.             child.y = (numChildren-1) * imageOffsetXY;  //der Optik wegen
  70.             updatePositions();
  71.             return child;
  72.         }
  73.        
  74.         override public function addChildAt(child:DisplayObject, index:int):DisplayObject
  75.         {
  76.             super.addChildAt(child, index);
  77.             child.y = index * imageOffsetXY;    //der Optik wegen
  78.             updatePositions();
  79.             return child;
  80.         }
  81.        
  82.         override public function setChildIndex(child:DisplayObject, index:int):void
  83.         {
  84.             super.setChildIndex(child, index);
  85.             updatePositions();
  86.         }
  87.        
  88.         override public function removeChild(child:DisplayObject):DisplayObject
  89.         {
  90.             super.removeChild(child);
  91.             updatePositions();
  92.             return child;
  93.         }
  94.        
  95.         override public function removeChildAt(index:int):DisplayObject
  96.         {
  97.             var child:DisplayObject = super.removeChildAt(index);
  98.             updatePositions();
  99.             return child;
  100.         }
  101.        
  102.         private function updatePositions():void
  103.         {
  104.             for (var i:int, len:int = numChildren, changed:Boolean; i<len; ++i) {
  105.                 var d:DisplayObject = getChildAt(i);
  106.                
  107.                 //var col:int = i % rowCount, row:int = i / rowCount;
  108.                 //var px:Number = col * imageOffsetXY;
  109.                 //var py:Number = row * imageOffsetXY;
  110.                 //if (d.x != px || d.y != py) {
  111.                     //TweenLite.to(d, .5, { x: px, y: py } );
  112.                     //changed = true;
  113.                 //}
  114.                
  115.                 var py:Number = i * imageOffsetXY;
  116.                 if (d.y != py) {
  117.                     TweenLite.to(d, .5, { y: py } );
  118.                     //changed = true;
  119.                 }
  120.             }
  121.            
  122.             //bei mir läuft es schneller ohne dem hier,
  123.             //und ich sehe auch keinen Unterschied in der Optik
  124.             //if (changed)
  125.                 //stage.invalidate();
  126.         }
  127.     }
  128. }
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (02-03-2012 um 03:12 Uhr)
thomas_E ist gerade online   Mit Zitat antworten
Alt 02-03-2012, 07:30   #15 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.610
@hgseib:
Sorry, aber Dein Test hinkt total, da Du andere Rahmenbedingungen für EnterFrame als für TweenLite setzt.

Ich habe den Speed aus dem Weg/(die benötigte Zeit * fps) berechnet und gebe so beiden Engines dieselbe Aufgabe.

Du zählst mit schnellem Auge(?) die Sprünge und bastelst dann mit der Fantasiezahl 8 herum. Bei 1 Object läuft so die oEF viel viel schneller als TweenLite (also nicht mehr die angestrebten 2 Sekunden), ist ja logisch.
Wenn mein uU noch schnelleres Auge () 20 Sprünge gezählt hätte, fiele Das Ergebnis komplett anders aus. Ich vertraue da, wie Du in Deinen ganzen sonstigen Postings hier im FF der Mathematik.

Alles in allem: Unfaire Manipulation der Testumgebung.

Aber jedem seine Lieblingsspielzeuge -wobei ich eindeutig zu den Tweenengines rate...


LG ANdré

EDIT: @mods: Vielleicht kann man ja die Threads aufteilen - einen fürs urspr.Problem
und einen für diesen Performancevergleich - ich denke, Performance ist für jeden Flasher ein Riesen-Thema?
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.

Geändert von andrelehnert (02-03-2012 um 08:03 Uhr)
andrelehnert 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
tabelle oben positionieren bubzilla HTML und CSS 5 02-03-2006 16:50
tabelle mittig und oben elbronchito HTML und CSS 8 30-12-2002 23:18
Wie bekomme ich meine Tabelle im Browser ganz nach links und ganz nach oben? Lord D. HTML und CSS 2 29-10-2002 10:02
text bei tabelle nach oben setzten!! crazy_hemorid HTML und CSS 2 04-07-2002 07:51
Einfache Frage - Tabelle ganz nach oben rücken mood HTML und CSS 4 29-08-2001 16:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele