Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-11-2005, 19:35   #1 (permalink)
Freak
 
Benutzerbild von Pixelflow
 
Registriert seit: Mar 2004
Ort: Germany, Hessen, Frankfurt
Beiträge: 37
[Flash MX 2004] Ungenauigkeit bei Bewegungsfunktion

Hi Leute,

ich hab hier mal eine Bewegungsfunktion geschrieben. Leider ist diese Funktion noch nicht ganz perfekt. Wenn ihr euch den Dummy mal anschaut und mit der Maus von unten nach oben über die Flächen fahrt, werdet ihr feststellen, wenn ihr beim zweiten Punkt von oben angekommen seit, dass zwischen der dritten und vierten Fläche zwei Pixel sind, die da nicht hingehören. Leider bin ich mit meinem Latein am Ende .. diese zwei Pixel existieren nur in diesem einen einzigen Fall. Hat jemand eine Idee, woran das liegen könnte?! Hier das Script und die Links zur FLA und zum SWF:

Links:
http://www.pixelflow.de/dummies/move...eFunction.html
http://www.pixelflow.de/dummies/move...veFunction.fla

Die Funktion / die Variablen im ersten Schlüsselbild:
Code:
// Zur Funktion:
// der Wert 15, ist der Abstand von oben
// der Wert 18, ist die Höhe des Navigationspunktes
// der Wert 3, ist die Geschwindigkeit

function moveNav (instanz) {
    
    var instanzName = instanz.substring (0, instanz.indexOf ("_"));
    var instanzID = instanzName.substring(3, instanzName.length);
    var currentMainnavID = Number(_root.currentMainnav.substring(3, _root.currentMainnav.length));
    
    if (currentMainnavID < instanzID && _root.currentAnzahlSubnav != 0) {
        this[instanz]._y = Math.ceil(this[instanz]._y + (15 + ((instanzID - 1) * 18) + ((_root.currentAnzahlSubnav * 18)) - this[instanz]._y) / 3);
    } else {
        this[instanz]._y = int((this[instanz]._y + (15 + ((instanzID - 1) * 18) - this[instanz]._y) / 3));
    }
    
};

_root.currentAnzahlSubnav = 0;
_root.currentMainnav = undefined;
Der Aufruf auf den Button (am Beispiel des zweiten Button):
Code:
onClipEvent (enterFrame) {
    _parent.moveNav(this._name);
}
on (rollOver) {
    _root.currentAnzahlSubnav = 2;
    _root.currentMainnav = "nav2";
}
on (rollOut) {
    _root.currentAnzahlSubnav = 0;
    _root.currentMainnav = undefined;
}
Gebt mir einen Denkanstoss, ich komm absolut zu keinem Ziel.

Danke schon mal!

Greetz
Pixelflow
Pixelflow ist offline   Mit Zitat antworten
Alt 03-11-2005, 20:42   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
math.ceil

runden ist und bleibt runden.
warrantmaster ist offline   Mit Zitat antworten
Alt 03-11-2005, 20:45   #3 (permalink)
Freak
 
Benutzerbild von Pixelflow
 
Registriert seit: Mar 2004
Ort: Germany, Hessen, Frankfurt
Beiträge: 37
Aber warum dann NUR bei diesem einen Fall?! Wenn ich die Navigation von oben nach unten entlang gehe, tritt der Fall nicht ein?!
Pixelflow ist offline   Mit Zitat antworten
Alt 03-11-2005, 21:47   #4 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
kommt halt nur drauf an wie man rundet ^^
PHP-Code:
var n:Number 1.4;
trace(Math.ceil(n));
// 2
trace(Math.round(n));
// 1 
aber egal, so gehts(int und runderei rausnehmen)
PHP-Code:
function moveNav(instanz) {
    var 
instanzName instanz.substring(0instanz.indexOf("_"));
    var 
instanzID instanzName.substring(3instanzName.length);
    var 
currentMainnavID Number(_root.currentMainnav.substring(3_root.currentMainnav.length));
    if (
currentMainnavID instanzID && _root.currentAnzahlSubnav != 0) {
        
this[instanz]._y = (this[instanz]._y + (15 + ((instanzID 1) * 18) + ((_root.currentAnzahlSubnav 18)) - this[instanz]._y) / 3);
    } else {
        
this[instanz]._y = (this[instanz]._y + (15 + ((instanzID 1) * 18) - this[instanz]._y) / 3);
    }
}
_root.currentAnzahlSubnav 0;
_root.currentMainnav undefied
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (03-11-2005 um 21:51 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 04-11-2005, 05:52   #5 (permalink)
Freak
 
Benutzerbild von Pixelflow
 
Registriert seit: Mar 2004
Ort: Germany, Hessen, Frankfurt
Beiträge: 37
Ich brauch am Ende aber gerade Werte und die bekomm ich nur durch's Runden. Letztendlich sind es nämlich keine Flächen die bewegt werden, sondern Texte mit Pixelfonts. Das is der Haken an der ganzen Sachen! Und ohne Runden krieg ich die MC's doch nie auf einen geraden Wert, oder?!
Pixelflow 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 10:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele