| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
| unerwünschte nachkommastellen bei zuweisung
moin, ich weise einem balken in einem onClipEvent(enterFrame) eine neue breite zu. dieser neu zugewiesene wert wird aus drei anderen dynamischen berechnet und sogar mit Math.round(...) gerundet. der ausgangswert der breite ist ein wert ohne komma. trotzdem bekommt die breite bei der 4. zuweisung einen nicht runden wert, da kann man noch so viel Math.round benutzen wie man lustig ist... nach stunden des grübelns bin ich nun am ende meines lateins und hoffe auf die großartige mithilfe schlauerer menschen. der betreffende teil des codes: mx1 = _root.Menue.MenueMaske._x; mx2 = _root.Menue.MenueMaske._x + _root.Menue.MenueMaske._width; ox1 = _global.menueOverX1; ox2 = _global.menueOverX2; if( mx2 < ox2) { trace("links nach rechts"); if (_global.schritte == 1) { trace("huii" + _root.Menue.MenueMaske._width); var laenge = ox2 - mx1; _root.Menue.MenueMaske._width = laenge; trace(laenge); trace("huii" + _root.Menue.MenueMaske._width); _global.schritte = 5; } else { var schritt = (ox2 - mx2) / _global.schritte; schritt = Math.round(schritt); trace("schritt = "+schritt); _root.Menue.MenueMaske._width += schritt; _root.Menue.MenueMaske._width = Math.round(_root.Menue.MenueMaske._width); _global.schritte--; } } wer an dem gesamten code interessiert ist kann auch gerne das fla bekommen... grüße jan eric |
| | |
| | #2 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
|
weiß denn da wirklich niemand weiter? ist das vielleicht ein flash internes problem bei der programmierung von actionscript 2.0 (weshalb das thema da auch eigentlich stand - keine ahnung warum es der moderator hier rüber geschoben hat)? ...hilfe jan |
| | |
| | #3 (permalink) |
| info.krypto(256bit) Registriert seit: Sep 2002
Beiträge: 48
|
Also , ohne jetzt dein skript vollständig analysiert zu haben: hast du es schon mal mit int(Ausdruck) versucht, ist mein Stil jedenfalls und bei einer ähnlichen Fragestellung bei mir hat das ganze ohne Probleme gefunzt - ne FLA ist einfach deswegen immer besser, weil mann innerhalb kürzester Zeit sinnlich wahrnehmen kann, worum es geht - es ist nicht jedermanns Sache sich ein sprödes Skript mal eben im Hirn zu visualisieren, mir macht das zwar Spass, aber es ist anstrengend, zeitaufwändig und nicht immer zielführend... B |
| | |
| | #4 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
|
neja, mit int(...) hats bei mir genausowenig geklappt. leider. wie gesagt, ich checkst halt überhaupt nicht wodran des liegen könnte... selbst wenn ich sowas mach wie: _root.Menue.MenueMaske._width = 818; zeigt mir trace(_root.Menue.MenueMaske._width); 817.95 mittlerweile tipp ich immer mehr auf einen fehler in der sprache, vielleicht klappts ja in alten flash-versionen noch. ich hab ja keine ahnung, bin aber kurz davor an mir selbst zu zweifeln... ach wenn du das fla haben willst gib mir mal bitte deine email-adresse, es ist leider zu groß um es hier zu posten (212kb). gruß, jan |
| | |
| | #5 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
|
da scheints immer noch keiner eine idee hat, habe ich die datei nu online gestellt: http://www.tfh-berlin.de/~s718431/jan.fla ... gruß, jan |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
das passiert aber nicht an der von dir angemahnten stelle, sondern da, wo du so interessante konstrukte generiert hast: Math.round(_root.Menue.MenueMaske._width = ox2 - ox1); ändere das (kommt 4x vor) in _root.Menue.MenueMaske._width = Math.round(ox2 - ox1); dann gehts ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #7 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
|
funktioniert des dann bei dir? welche version von flash hast du? ich hab deine verbesseungen eingefügt komme, aber wie vorher garnicht bis dorthin, sofern ich die maus über referenzen oder einen anderen menüpunkt im rechten bereich bewege, da es sich vorher schon an der kritischen stelle aufhängt und in eine endlosschleife kommt... eigentlich sind diese Math.round(ox2-mx1) usw. sowieso überflüssig, da dort niemals eine zahl mit kommastellen auftaucht, aber naja man kann ja nichts unversucht lassen. ich habe jetzt mal folgendes eingebaut: while (_root.Menue.MenueMaske._width != laenge) { trace("verdammter dreck"); _root.Menue.MenueMaske._width = laenge; } wodurch das programm zum absturz kommt... aaaahhhhh!!!!!!!! da 'krisch plack |
| | |
| | #8 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
du weist der breite ox2 - ox1 zu und übergibst _width der round- funktion. die tut auch brav ihre arbeit und sendet das ergebnis zurück. NUR, mit dem zurückgesendeten machst du nichts! somit ist die rundung für die katz und in _width bleibt der gebrochene wert stehen. dachte zu viel "copy and paste" den weiter oben hattest du es ja richtig geschrieben. ich hab 2004 pro, dein fla im debuger laufen lassen und MenueMaske._width verfolgt. beim nach rechst bewegen ist alles eckig, beim nach links bewegen kamen grumme zahlen. die waren weg, nachdem ich -wie geschrieben- an den 4 stellen diesen schreib-fehler behoben hatte. bei mir ist nichts hängen geblieben (auch nicht im kopf) und ansonsten beschäftige ich mich jetzt nicht 33stunden lang mit deinem zeug ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (25-02-2004 um 23:36 Uhr) |
| | |
| | #9 (permalink) |
| Alter User Registriert seit: Nov 2003 Ort: Berlin
Beiträge: 180
|
verlangt ja auch niemand (das beschäftigen) und so weiß ich wenigstens, dass ich nicht komplett bescheuert bin... danke! wenn du mir jetzt noch verraten könntest welche versionnummer dein gelöt hat, wäre ich über glücklich und würde dir nen kuchen backen wenn du das nächste mal vorbeischneist. janneric |
| | |
| | #10 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.324
|
Flash MX 7.1 r 498 auf mac 498 die machen offensichtlich jeden tag 5 neue versionen :-) wie auch immer. das kann nichts mit alter und neuer version zu tun haben! so einen balken nach links und rechts verschieben kann man ja selbst mit flash4 programmieren... geh das ding doch mal mit dem debugger durch. da kannst du dir jede eigenschaft und variable zur laufzeit ansehen. manchmal sieht man den wald vor lauter bäumen nicht.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |