Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-02-2007, 13:35   #1 (permalink)
Neuer User
 
Benutzerbild von Path00
 
Registriert seit: Oct 2006
Beiträge: 109
funktion in schleife ... oda doch duplizieren?

hallo !

hab schon wieder ein problem ... wahrscheinlich eh der einfachen art;
bitte um hilfe;

die lange vorgeschichte:
im prinzip soll sand auf etwas spitzes rieseln und daran runter laufen; - wenn man auf den button klickt.

wenn ich auf den button klick' wird die funktion sand(); ausgeführt - in der der sand beschrieben is .... am schluss wird die funktion fall(); ausgeführt ... da steht wie der sand zu fallen hat ...

das eigentliche problem: wenn ich klick, wird das immer von neuem ausgeführt ... zb.: bei 2x klicken bricht er die funktion ab und fängt von neuem an ....
__________________________________________________ ____________
wie sag' ich dem herrn flash, er soll anstatt von vorne anfangen, die funktion sand(); noch einmal starten ...?!
mit einem array oda die funktion in eine for-schleife packen, oder die funktion duplizieren ... hab einiges probiert, -nichts funkt,

hoff jemand isses nit zu hart des alles zu lesen - thx daweil - baba, Path
Path00 ist offline   Mit Zitat antworten
Alt 17-02-2007, 11:19   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Hab ich nicht wirklich verstanden, poste mal den Code...
  Mit Zitat antworten
Alt 17-02-2007, 12:41   #3 (permalink)
Neuer User
 
Benutzerbild von Path00
 
Registriert seit: Oct 2006
Beiträge: 109
hy!
PHP-Code:
function sand() {
    for (
i=0;i<70;i++) {
    var 
this.attachMovie("sandring","sandring"+i,i)
    new 
Color(t).setRGB([0x0006b6,0x5fb5ff,0x9fb5ff,0xffbd00,0xff7800][random(5)]);
    
t._x Math.random()*10+270;
    
t._y Math.random()*50-100;
    
t.speed random(100)+100;
    
t.dx = ([180,370][random(2)]);
    
t.dy Math.round(Math.random()*40+50);
    
t._xscale Math.random()*20+8;
    
t._yscale t._xscale;
    
//t._alpha = Math.random()*100+10;
    
t.dreh Math.random()*(Math.PI*2);
    
t.onEnterFrame fall;
    }
}
function 
fall() {
    
this._y += (this.speed-this.dy)/5;
    
    
    if (
this.hitTest(_root.ringMC) && this._x >= 275) {
        
this._x += (5+this.speed-this.dy)/5;
        
this._rotation += this.dreh;
    }
    else if (
this.hitTest(_root.ringMC) && this._x <275) {
        
this._x -= (5+this.speed-this.dy)/5;
        
this._rotation += this.dreh;
    }

des steht in einem leeren actionscript-frame -
und auf am button wird die funktion sand(); bei on (release) aufgerufen ....

denk mitlerweile an setInterval ... mal schaun ob mich das irgendwie weiter bringt ... - hoffe immer noch auf ideen von außen, lg
Path00 ist offline   Mit Zitat antworten
Alt 17-02-2007, 12:49   #4 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
ne das bringt dich nicht weiter...du überschreibst ja "t" immer.
also bei jedem start wird t überschrieben.

na müsstest du jedes man ne neue Variable(MovieClip) erstellen, mit nem neuen Namen.

gruß b.asile
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 17-02-2007, 13:14   #5 (permalink)
Neuer User
 
Benutzerbild von Path00
 
Registriert seit: Oct 2006
Beiträge: 109
also die funktion einfach in einen leeren movieclip
und den dann mit einer forschleife und attach reinholn ? - aus der bibliothek
k - thx ... werd des mal so probieren.
Path00 ist offline   Mit Zitat antworten
Alt 17-02-2007, 21:16   #6 (permalink)
Neuer User
 
Benutzerbild von Path00
 
Registriert seit: Oct 2006
Beiträge: 109
hy!
hab mia den rat zu herzen genommen - hab jetzt aber die schleife weg gelassen
(sons funkt wieder gar nichts) - jetzt würd es so gehn, wie geplant, würd der herr flash nicht
teile der funktion überspringen/ auslassen - weitere sandringe erstellt er ja; sachen wie randomfarbe
oder der hittest gehn aber nicht mehr (verzweifel)

hier nochmal der code:

zur erklärung: 1. script ist in einem MC dessen verlinkung fs heißt - 2. button auf der _root.

PHP-Code:
function sand() {
    for (
i=0;i<70;i++) {
    var 
this.attachMovie("sandring","sandring"+i,i)
    new 
Color(t).setRGB([0x0006b6,0x5fb5ff,0x9fb5ff,0xffbd00,0xff7800][random(5)]);
    
t._x Math.random()*10+270;
    
t._y Math.random()*50-100;
    
t.speed random(100)+100;
    
t.dy Math.round(Math.random()*40+50);
    
t._xscale Math.random()*20+8;
    
t._yscale t._xscale;
    
t.dreh Math.random()*(Math.PI*2);
    
t.onEnterFrame fall;
    }
}
function 
fall() {
    
this._y += (this.speed-this.dy)/5;
    
    if (
this.hitTest(_root.ringMC) && this._x >= 275) {
        
this._x += (5+this.speed-this.dy)/5;
        
this._rotation += this.dreh;
    }
    else if (
this.hitTest(_root.ringMC) && this._x <275) {
        
this._x -= (5+this.speed-this.dy)/5;
        
this._rotation += this.dreh;
    }
}
sand(); 

2.script
PHP-Code:
on (release) {
this.attachMovie("fs",fs_mc1,this.getNextHighestDepth());

warum macht der das/was mach ich falsch/ hilfe und danke
Path00 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 13:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele