Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-09-2005, 10:38   #1 (permalink)
Duftbäumchen
 
Benutzerbild von derDan
 
Registriert seit: Jan 2004
Beiträge: 213
ganze Pixelpositionierung im Zusammenhang mit localToGlobal und PI Problem

Dreht man einen MC und versucht nun durch drehen eines übergeordneten Clips das Ganze wieder auszubügeln, stößt man auf das Problem, dass PI intern wohl beim Berechnen von globalToLocal verwendet wird und es somit zu Abweichungen von bis zu 0.5 Pixel kommt, was das ganze natürlich witzlos macht. Gibts eine andere Möglichkeit um auf die nächste ganzzahlige Koordinate zu springen?

ActionScript:
  1. var objPos:Object = {x:_x, y:_y};
  2.            
  3.             localToGlobal(objPos);
  4.             trace(objPos.x+"   "+objPos.y);
  5.             objPos.x = Math.round(objPos.x);
  6.             objPos.y = Math.round(objPos.y);
  7.             globalToLocal(objPos);
  8.             //     
  9.             _x = objPos.x;
  10.             _y = objPos.y;
  11.             //
  12.             localToGlobal(objPos);
  13.             trace(objPos.x+"   "+objPos.y);//trotzdem nicht ganzzahlig
  14.             trace("");
derDan ist offline   Mit Zitat antworten
Alt 29-09-2005, 11:39   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
ääähh,
was willst Du machen???
...ich denke localToGlobal und globalToLocal funktionieren schon richtig, dein code ist allerdings etwas 'wirr'...das Ergebnis allerdings absolut korrekt...

Edit: ...vermutlich willst Du sowas:
ActionScript:
  1. var objPos = {x:this._x, y:this._y};
  2. trace("lokal:"+objPos.x+"   "+objPos.y);
  3. _parent.localToGlobal(objPos);
  4. trace("global:"+objPos.x+"   "+objPos.y);
  5. objPos.x = Math.round(objPos.x);
  6. objPos.y = Math.round(objPos.y);
  7. trace("global_gerundet:"+objPos.x+"   "+objPos.y);
  8. _parent.globalToLocal(objPos);
  9. _x = objPos.x;
  10. _y = objPos.y;
  11. trace("lokal_gerundet:"+objPos.x+"   "+objPos.y);
  12. objPos.x=0;
  13. objPos.y=0;
  14. localToGlobal(objPos);
  15. trace("global_gerundet_tatsächlich:"+objPos.x+"   "+objPos.y)
Edit: ...code nochmal korrigiert...Edit: ...und nochmal einige traces hinzugefügt, damit Du erkennst was passiert...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (29-09-2005 um 12:14 Uhr)
Alois 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 14:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele