Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-09-2003, 21:27   #1 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
BUG im PlugIn !?!

Hallo zusammen,

ich habe da ein Problem, an dem ich schier verzweifel...

Ich zeichne dynamisch eine größere Anzahl von Rechtecken in einen MC. Im Wesentlichen stehen diese Rechtecke alle nebeneinander und ergeben ein Streifenmuster. Durch die große Anzahl von Objekten verringert sich die Geschwindigkeit meines SWF erheblich...
Soweit - So gut...

Jetzt kommt das Verrückte!!!
Wenn ich dies Rechtecke drehe, dann wird die Geschwindigkeit meines SWF größer, je näher ich an -90°, bzw. +90° gerate... Und zwar nicht nur ein wenig...
Ich würde so ca. von Faktor fünf sprechen...

Das kann doch nicht sein! Kann mir das jemand begründen? Das ist doch bestimmt ein Bug des PlugIns, oder?

Ich verzweifel auf jeden Fall!!!
So etwas Sinnloses!!!

Hiiiiiiilfeeeeeee!!!!

Totty
__________________
Where in this small-thinking world can I find a longitude without a platitude?

Geändert von Totty (19-09-2003 um 13:03 Uhr)
Totty ist offline   Mit Zitat antworten
Alt 18-09-2003, 21:54   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hast du das Script mal da ? Das würde mich interessieren.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 18-09-2003, 22:36   #3 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Eigentlich gerne,
aber Script ist schwierig, da es Teil einer größeren Applikation ist (...und natürlich extrem gut dokumentiert...

Aber klick doch mal hier drauf und wähle unten den Link 'Gast'.
Anschließend auf Visualisierung klicken (Gast/Gast) und dann ein Streifenkartogramm auswählen...
Jetzt noch Daten und Farben bestimmen und schon kannste sehen/testen was ich meine...
Ich habe auch nochmal 2 Karten (0° / 90°) angelegt. Die kannste oben auswählen...

Übrigens, ich habe es nochmals kontrolliert, durch Veränderung des Winkels wird wirklich nur eine Rotation ausgelöst... Sonst garnichts!!!

Totty
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 18-09-2003, 22:40   #4 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
ActionScript:
  1. _level0.rahmen = _level1["flaeche_"+(i+1)].getBounds();
  2.             _level0.ak_alt = _level0.rahmen.xMax-((_level0.rahmen.xMax-_level0.rahmen.xMin)/2);
  3.             _level0.gk_alt = -(_level0.rahmen.yMax-((_level0.rahmen.yMax-_level0.rahmen.yMin)/2));
  4.             _level0.hypo2 = Math.sqrt(Math.pow(_level0.gk_alt,2)+Math.pow(_level0.ak_alt,2));
  5.             if (_level0.fl_winkel != 0) {
  6.                 _level0.winkel_alt = Math.atan(_level0.gk_alt/_level0.ak_alt)*180/Math.PI;
  7.                 _level0.gk_neu = Math.sin((_level0.winkel_alt-_level0.fl_winkel)*Math.PI/180)*_level0.hypo2;
  8.                 _level0.ak_neu = Math.cos((_level0.winkel_alt-_level0.fl_winkel)*Math.PI/180)*_level0.hypo2;
  9.                 _level0.winkel_neu = _level0.fl_winkel;
  10.                 _level0.xneu = (_level0.ak_alt-_level0.ak_neu);
  11.                 _level0.yneu = (_level0.gk_alt-_level0.gk_neu);
  12.                 _level1["flaeche_"+(i-(-1))]._x =  _level0.xneu;
  13.                 _level1["flaeche_"+(i-(-1))]._y =  -_level0.yneu;
  14.                 _level1["flaeche_"+(i-(-1))]._rotation = _level0.fl_winkel;
  15.             }

...und so drehe ich's...
...wobei _level0.fl_winkel der Drehwinkel und _level1["flaeche_"+(i+1)] die aktuelle Fläche ist...
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 18-09-2003, 23:04   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Die Rechtecke gehen immer über die ganze Länge und werden durch die Karte maskiert ?

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 19-09-2003, 00:03   #6 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Nein, natürlich nicht...

Aber Sie sind halt so groß, daß man sie auch im schlimmsten anzunehmenden Notfall (hier ein Quadrat) drehen kann, ohne Freiräume zu erzeugen...

Das paßt schon!
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 02:04   #7 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Also, hinter jeder Region liegen soviele Rechtecke, wie benötigt werden, um die Darstellung zu gewährleisten.
D.h., im Endeffekt ein Quadrat, das etwas größer ist als die Ausdehnungen der Region...
Aber es ergibt jawohl keinen Sinn, warum liegende Rechtecke weniger Rechenleistung fressen als stehende...

Ich versteh's nicht!!!

Totty
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 02:09   #8 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
dreh sie doch einfach per default um 90 grad und rotier sie dann zurück
__________________
jeden Tag frisch
beachmeat ist offline   Mit Zitat antworten
Alt 19-09-2003, 02:33   #9 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Nee, es scheint dabei nur auf die endgültige Rotation anzukommen...
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 13:06   #10 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Kann das sonst noch jemand bestätigen???
...Oder hat jemand schonmal ein ähnliches Problem gehabt???
Kennt jemand eine Lösung???

Ich wäre für jede Hilfe dankbar, denn die Performance bei 'stehenden Rechtecken' ist indiskutabel!!!

Totty
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 13:36   #11 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Was mich ein wenig wundert, ist dass die Performance unten bleibt. Normalerweise muesste sie nach dem Zeichnen wieder rauf gehen. Ich habe versucht das Problem nachzuvollziehen, aber egal wie ich es drehe, die Performance ist immer gleich. Zum Testen habe ich 120 Rechtecke 2 x 420 hinter einer Maske gezeichnet.

Laeuft da noch irgendwas im Hintergrund ? Wie hast du die RollOvers gemacht ?

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 19-09-2003, 14:44   #12 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Nein, da läuft ansonsten nichts mehr...

Die RollOver sind einfach nur eine duplizierte Region... die mit _visible ein- und ausgeblendet werden...
Bei mir bleibt die Performance auch unten, allerdings bei (+/-)90°-gewinkelten Objekten immernoch erheblich schneller als bei 0°...
Daß die Performance unten bleibt habe ich bis jetzt auf die Anzahl der Objekte zurückgeführt...
Es werden zwar pro Region nur 2 MCs angelegt (1. Die ganzen Flächen/2. die dickeren Linien, die die Bänder abgrenzen) allerdings bestehen diese je nach Größe der Region und ausgewählten Daten aus bis zu ca. 50 Recktecken und ca. 10 Linien.

Aber warum machen die waagerechten weniger Aufwand als die senkrechten???

Ich glaub', da hat bei MM mal wieder jemand einen Bock geschossen...

Naja, wäre ja auch nichts Neues...
(Ich sage nur:
ActionScript:
  1. meinMovieclip.lineStyle ([dicke[,rgb[,alpha]]])
Wer hat Dicke denn als Integer angelegt??? Erschiessen sage ich nur...)

Totty
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 15:22   #13 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Reduzier dein Script und dein Fla doch mal auf das Nötigste und schau, was passiert.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 19-09-2003, 16:21   #14 (permalink)
Geomatik-Flasher
 
Benutzerbild von Totty
 
Registriert seit: Aug 2002
Ort: Karlsruhe
Beiträge: 162
Immernoch das gleiche Spiel...

ActionScript:
  1. createEmptyMovieClip("test1",10);//Zum reinzeichnen
  2. with(test1) {
  3.     beginFill(0xcccccc,100);
  4.     moveto(150,150);
  5.     lineto(650,150);
  6.     lineto(650,650);
  7.     lineto(150,650);
  8.     lineto(150,150);
  9.     endFill();
  10. }
  11. createEmptyMovieClip("test2",20);//Sichtbar onRollOver
  12. with(test2) {
  13.     beginFill(0xff0000,50);
  14.     moveto(150,150);
  15.     lineto(650,150);
  16.     lineto(650,650);
  17.     lineto(150,650);
  18.     lineto(150,150);
  19.     endFill();
  20. }
  21. test2._visible = 0;
  22. test1.duplicateMovieClip("test3",30);// Maske
  23. test1.setMask(test3);
  24. createEmptyMovieClip("test4",40);// Schalter (+45°)
  25. with(test4) {
  26.     beginFill(0xff0000,100);
  27.     moveto(650,650);
  28.     lineto(700,650);
  29.     lineto(700,700);
  30.     lineto(650,700);
  31.     lineto(650,650);
  32.     endFill();
  33. }
  34. test1.onRollOver = function() { // Zum ein- und ausblenden
  35.     test2._visible = 1;
  36. }
  37. test1.onRelease = function() {
  38.     test2._visible = 1;
  39. }
  40. test1.onReleaseOutside = function() {
  41.     test2._visible = 0;
  42. }
  43. test1.onDragOut = function() {
  44.     test2._visible = 0;
  45. }
  46. test1.onRollOut = function() {
  47.     test2._visible = 0;
  48. }
  49. for (i = 0; i < 800; i++) {//Zeichne Rechtecke in test1
  50.     if (i%2 == 1) {
  51.         farbe = "0x00ff00";
  52.     }else {
  53.         farbe = "0x0000ff";
  54.     }
  55.     with(test1) {
  56.         beginFill(farbe, 100);
  57.         moveto(i,0);
  58.         lineto(i+1,0);
  59.         lineto(i+1,800);
  60.         lineto(i,800);
  61.         lineto(i,0);
  62.         endFill();
  63.     }
  64. }
  65. winkel = 0; // Startwinkel
  66. test4.onRelease = function() { // Bei Knopfdruck
  67.     winkel += 45;
  68.     trace("aktueller Winkel: "+winkel);
  69.     rahmen = test1.getBounds(); // Positionieren
  70.     ak_alt = rahmen.xMax-((rahmen.xMax-rahmen.xMin)/2);
  71.     gk_alt = -(rahmen.yMax-((rahmen.yMax-rahmen.yMin)/2));
  72.     hypo2 = Math.sqrt(Math.pow(gk_alt,2)+Math.pow(ak_alt,2));
  73.     winkel_alt = Math.atan(gk_alt/ak_alt)*180/Math.PI;
  74.     gk_neu = Math.sin((winkel_alt-winkel)*Math.PI/180)*hypo2;
  75.     ak_neu = Math.cos((winkel_alt-winkel)*Math.PI/180)*hypo2;
  76.     xneu = (ak_alt-ak_neu);
  77.     yneu = (gk_alt-gk_neu);
  78.     test1._x =  xneu;
  79.     test1._y =  -yneu;
  80.     test1._rotation = winkel;
  81. }

Hier das Script!!!
__________________
Where in this small-thinking world can I find a longitude without a platitude?
Totty ist offline   Mit Zitat antworten
Alt 19-09-2003, 18:56   #15 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Tja, sieht echt schlecht aus. Machs halt waagerecht.

mfg r
bokel 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



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

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


Copyright ©1999 – 2012 Marc Thiele