Autor |
Nachricht |
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 22.08.2006 14:22
Titel [flash] as-noob braucht hilfe für pendel-animation |
|
|
moin,
ich habe folgendes auf der leinwand:
der pfeil ist ein button namens 'arrow'
das textfeld heißt 'out'
jetzt will ich den pfeil beliebig hin und her pendeln lassen
und der wert soll im textfeld angezeigt werden
ich scheiter aber schon bei der rotation der pfeils
den anker des pfeils habe weit nach unten gesetzt, so das er sich bei der manuellen rotierung entlang der skala bewegt
dann habe ich erstmal was einfaches geschrieben um zu schauen, ob und wie sich der pfeil bewegt
Code: | var i = 0;
while(i<180){
setInterval(rotate,1000);
i+=5;
}
function rotate() {
arrow._rotation += i;
out.text = i;
} |
der pfeil sollte sich damit jede sekunde um 5º drehen
und der wert unten ausgegeben werden
aber der pfeil springt nur umher und hört nicht mehr auf. der anker scheint auch oben links zu sein
und die anzeige zählt nicht langsam hoch, sondern springt gleich auf 180
wer findet die fehler?
auch führ weiterführende ideen, was die funktionsweise der rotation angeht, wäre ich dankbar
grüße
alex
//edit//
ok, das mit dem anker hab ich jetzt. der pfeil ist jetzt ein movieclip und passend positioniert.
aber die funktionsweise mit actionscript schaff ich wohl nicht alleine
Zuletzt bearbeitet von am Di 22.08.2006 14:41, insgesamt 1-mal bearbeitet
|
|
|
|
|
mikesch
Dabei seit: 15.04.2002
Ort: Leverkusen
Alter: 47
Geschlecht:
|
Verfasst Di 22.08.2006 14:37
Titel
|
|
|
das problem bei dir stellt die while schleife dar. die läuft nähmölich einmal durch und zwar so schnell es geht. und ruft bei jedem durhclauf die funktion auf.
geschickter ist es die funktion nur aufzurufen und dann innerhalb der funktion hochzuzählen. so etwa!!
Code: | var i = 0;
setInterval(rotate, 1000);
function rotate() {
if (i < 180) {
arrow._rotation += i;
out.text = i;
}
else {
clearInterval();
}
i += 5;
} |
|
|
|
|
|
Anzeige
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 22.08.2006 14:54
Titel
|
|
|
ja hab ich auch grad rausgefunden
hatte das grad so:
Code: |
var i = 0;
setInterval(rotate,1000);
i+=1;
function rotate() {
arrow._rotation += i;
out.text = i;
} |
und hab mich nur gewundert dass das schon nah dran ist
dachte das actionscript wird nur einmaldurchlaufen
deshalb hab ich ja die while schleife mit reingepackt
danke schön
hast du zufällig noch ne idee für die funktionsweise,
dass das schön hin und her pendelt?
|
|
|
|
|
mikesch
Dabei seit: 15.04.2002
Ort: Leverkusen
Alter: 47
Geschlecht:
|
Verfasst Di 22.08.2006 15:09
Titel
|
|
|
caZpa hat geschrieben: |
und hab mich nur gewundert dass das schon nah dran ist
dachte das actionscript wird nur einmaldurchlaufen
|
das AS auf dem frame läuft auch nur einmal. aber die schleife läuft solange bis der abbruchpunkt erreicht ist.
was meinst du genau mit pendeln?? soll der zeiger kurz zittern nachdem er sich bewegt hat? oder soll er irgendwie über die ganze anzeige pendlen?
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 22.08.2006 15:50
Titel
|
|
|
wenn schon Intervalle dann richtig
Code: | var Intervalname = setInterval(Functionsname, Zeit, Parameter);
clearInterval(Intervalname);
|
|
|
|
|
|
mikesch
Dabei seit: 15.04.2002
Ort: Leverkusen
Alter: 47
Geschlecht:
|
Verfasst Di 22.08.2006 16:02
Titel
|
|
|
FlamingArt hat geschrieben: | wenn schon Intervalle dann richtig
Code: | var Intervalname = setInterval(Functionsname, Zeit, Parameter);
clearInterval(Intervalname);
|
|
.........hättättättättäääää
..... hast ja recht. ..
|
|
|
|
|
caZpa
Account gelöscht Threadersteller
Ort: -
|
Verfasst Di 22.08.2006 16:08
Titel
|
|
|
ja danke für die tipps
Code: | var dg=0.25; // pfeilbewegung in grad
var ti=25; // intervall in ms
var i=0; // zähler
var x=1; // merker
Number.prototype.DecimalPoint=function(digits){
return (Math.floor(this)+","+Math.round(this*Math.pow(10,digits)).toString().slice(-digits))
}
var pendel = setInterval(rotate,ti);
function rotate() {
if(x==1){
arrow._rotation += dg;
i+=dg;
}
if(x==-1){
arrow._rotation -= dg;
i-=dg;
}
if(i==20 || i==-20){
x=x*(-1);
}
out.text = i.DecimalPoint(2);
} |
jetzt geht der zeiger schön von rechts nach links
ist aber etwas öde so gleichmäßig
versuche grad mit 2 buttons die geschwindigkeit regeln zu können
das klappt aber so gaaar nicht
oder kann ich die auch mit einer funktion steuern?
//edit
obwooohl... ist für ne demo für spannungsanzeige... ist wohl sinnlos da die geschwindigkeit regeln zu können
aber fürn anfang okay
weiß aber auch nicht, wie ich das schön authentisch machen könnte
die zeiger flattern ja immer ein bischen
und wär gut wenn man die spannung an nem regler einstellen kann
aber erstmal will ich auf geschwindigkeit trimmen
Zuletzt bearbeitet von am Di 22.08.2006 16:17, insgesamt 3-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP] UPDATE meinetabelle SET .... noob braucht hilfe
[PHP NOOB braucht hilfe ] content includen?
Flash-Tempalte umbauen - HILFE NOOB am Werk ^^
[FLASH] flashanfänger braucht hilfe bei menü
Flash 3d Animation
animation in flash
|
|