Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-01-2005, 12:22   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 34
schleife mit setInterval?

hallo...

beim klick auf einen button möchte ich gerne ein movieobjekt bewegen.

dazu gibt es folgende funktion, die das objekt jeweils 1 pixel nach links und nach unten bewegt:

Code:
function zoomIncrease() {
inforahmen._x = inforahmen._x - 1;
inforahmen._y = inforahmen._y + 1;
}
beim klick auf den button wird dann eine schleife ausgeführt:
Code:
for (i=1; i<101; i++) {
  setInterval(zoomIncrease(),100);
}
nach meinem bisherigen verständnis von dieser setInterval-funktion wird doch die angegebene zahl in millisekunden gewartet und dann die funktion ausgeführt. Also sollte eigentlich 100mal eine zehntelsekunde gewartet und dann der inforahmen um jeweils 1 px nach unten links verschoben werden...

aber irgendwie springt der rahmen direkt an seine vorgegebene position...

habe jetzt mal kräftig das forum durchsucht und auch einiges dazu gefunden, aber da werden intervalle geleert und gelöscht und da blick ich gar nicht durch...

vielen dank schon mal für eventuelle hilfe...
Skrymer ist offline   Mit Zitat antworten
Alt 12-01-2005, 12:36   #2 (permalink)
mentally ill
 
Registriert seit: Aug 2004
Beiträge: 172
hi,

könnte an der for schleife liegen, da diese ohne verzögerung ausgeführt werden... (meiner erfahrung nach).

evt. mal mit ner zeitleisten loop, zähler variable und if abfrage arbeiten


also im stil von:

frame 1:
PHP-Code:
var zaehler;
if (
zaehler == 100) {
gotoAndPlay(3);
} else {
setInterval(zoomIncrease(),100);
zaehler += 1;

frame 2:
PHP-Code:
gotoAndPlay(1); 
hatte ein ähnliches Problem mit einem Preloader, der per zufall ein und aus blendungen machen sollte.

mit ner for schleife hat er das dann immer "zack boom" sofort gemacht...

grüße
markus
__________________
there is no place like 127.0.0.1
--------------------------------------------------
[STUFF] E-Mail Liste für Newsletter o.ä.
[STUFF] MySQLConnector Klasse
menty ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:03   #3 (permalink)
Neuer User
 
Benutzerbild von the binary
 
Registriert seit: Jul 2001
Ort: Berlin | Friedrichshain
Beiträge: 3.561
warum nimmst du nicht einfach ein onEnterFrame ?
für eine so einfache bewegung reicht das völlig...

Code:
mc.increase = function()
 this.onEnterFrame = function()
 {
   inforahmen._x = inforahmen._x - 1;
   inforahmen._y = inforahmen._y + 1;
 }
}
musst nur noch eine abbruchbedingung definieren, damit der oEF wieder gelöscht wird...


gruss
__________________
8bm | join ff@BOINC
formpackage.org | audiohunter.de | problematica.de | 8ball-media.de/blog | taikonauten.cn
the binary ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:07   #4 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
Versuchs mal so:

PHP-Code:
_global.counter 0;

function 
zoomIncrease() {
   
_global.counter += 1;

    if(
_global.counter <= 100) {
      
inforahmen._x inforahmen._x 1;
      
inforahmen._y inforahmen._y 1;
    } else {
      
clearInterval(zoomInt);
    }
}

// der SetInterval:

  
zoomInt setInterval(zoomIncrease100);

// Wichtig: die Funktionsklammern werden bei der Initialisierung von 
// setInterval nicht mitgeschrieben ... wenn du Parameter übergeben musst
// ginge das so: setInterval(deineFunkton, 100, parameter1, parameter2); 
Hoffe das hilft
readme.txt ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:30   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 34
was diese onEnterFrame-sache bedeutet, verstehe ich leider gar nicht. auch die flash-referenz hilft mir da nicht wirklich weiter...

die lösung von readme.txt hat zumindest mal bewirkt, dass tatsächlich eine zehntelsekunde gewartet wurde, bevor dann der komplette sprung vollzogen wurde...als gäbe es die schleife gar nicht.
ich bin beim stöbern jetzt noch über einen hinweis gestolpert, dass flash erst nach der ausführung einer schleife die bühne neu aufbaut (also zeichnet?).

Das würde zumindest erklären, wieso man keine fließende bewegung sieht, aber da stellt sich mir die frage, wieso der zeitraum nicht stimmt.
bei 100 intervallen zu jeweils 100 millisekunden macht das bei mir 10 sekunden, bis sich da was tun dürfte...
Skrymer ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:44   #6 (permalink)
no guts no glory
 
Benutzerbild von readme.txt
 
Registriert seit: May 2004
Ort: Nordhorn
Beiträge: 7.998
ich habs mal bei mir probiert ... mit meinem code hat sich der mc alle 100 ms umd jeweils 1 pixel x/y bewegt und das 100 mal ... das wolltest du doch, oder?
readme.txt ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:50   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 34
ja...genau das wollte ich....wieso klappt das denn bei mir nicht?
Skrymer ist offline   Mit Zitat antworten
Alt 12-01-2005, 13:53   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 34
uaaahhh...sorry...ich hab den set intervall nochmal in meine for-schleife gepackt....das brauch ich ja dann gar nicht mehr...

jetzt klappts...vielen dank!!!!
Skrymer 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 04:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele