• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-02-2010, 18:42   #1 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 4
Sternenstaub (-> ohne Mausverfolger) auch für Flash 8 ?

Hallo zusammen,

habe folgendes vor und komme damit nicht weiter:

Ich möchte in meinem Film aus einer Blüte bei "Mouseover" eine Art Blütenstaub aus der Blüte fallen lassen, so lange wie die Maus die Blüte "berührt".

Habe hier im im Archiv aus einem sehr alten Beitrag einen interessanten Ansatz gefunden, einen Mausverfolger mit Sternenstaub:
Sternenstaub (Mausverfolger)
Teile daraus sind eigentlich genau das, was ich benötige: aus einer einzigen Grafik wird ein "Staub" generiert.
Leider bekomme ich es nicht hin, das Script so umzusetzen, dass es für meine Zwecke sinnvoll ist.

Kenne von AS leider nur Grundlagen, hoffe daher sehr auf Eure Hilfe.
Und ich verwende Flash 8 ...

Weiss jemand Rat, einen Ansatz?

Gruss,
Joe

Geändert von Lkwjoe (18-02-2010 um 17:05 Uhr)
Lkwjoe ist offline   Mit Zitat antworten
Alt 17-02-2010, 21:58   #2 (permalink)
Rookie_BS
 
Benutzerbild von Rookie_BS
 
Registriert seit: Sep 2004
Beiträge: 722
Das ist AS2 ergo auch Flash8fähig. Du hast scheinbar ein Umsetzungsproblem.
Poste deine FLA und man kann vllt. mehr sagen...

_mfg
__________________
Wenn Sie glauben Ihnen ist klar was ich gesagt habe - dann haben Sie mich missverstanden! Alan Greenspan
Rookie_BS ist offline   Mit Zitat antworten
Alt 18-02-2010, 15:55   #3 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 4
Sternenstaub -> ohne Mausverfolger für Flash 8

Hallo zusammen,

habe mich da eingangs wohl falsch ausgedrückt, darum hier noch einmal mit dem Versuch klarer zu werden.

rayden5 und Johannes P. haben im angesprochenen Thread folgendes Script veröffentlicht:
PHP-Code:
movieclip.prototype.initStar = function () {
    
_alpha 100;
    
_x = -30+random(60)+_root._xmouse;
    
_y = -30+random(60)+_root._ymouse;
    
_xscale 50+random(100);
    
_yscale _xscale;
    
amp 2+random(2);
    
lg 5+random(10);
    
speed random(10)+5;
}
movieclip.prototype.moveStar = function (lgampspeed) {
    
alp _alpha;
    if (
alp>0) {
        
alp -= 5;
        
_x += (Math.sin(_y/lg)*amp);
        
_y += speed;
        
_alpha alp;
    } else {
        
this.removeMovieClip();
    }

Aufruf aus dem Star-MC:
Code:
onClipEvent (load) {
    initStar();
}
onClipEvent (enterFrame) {
    moveStar(lg, amp, speed);
}
Aufruf aus dem Controller:
Code:
onClipEvent (mouseMove) {
    for (i=1; i<2; i++) {
        z++;
        duplicateMovieClip ("_root.star", "star"+z, z);
    }
    updateAfterEvent();
}
Der "Sternenregen" in diesem Script wird also über die Bewegung der Maus gestartet.
Und genau hier ist mein Problem: ich möchte diesen "Sternenregen" (oder was auch immer) so steuern, das dieser gestartet wird, wenn mit der Maus ein Kontrollfeld (MC, Schalter,...) berührt wird. Und: der "Sternenregen" soll dann erst wieder aufhören, wenn die Maus das Kontrollfeld verlässt.
Darum geht es...

Hänge hier mal die FLA an, habe darin schon die Position des Effekts auf einen festen Punkt gesetzt, nicht mehr der Maus folgend.
PHP-Code:
movieclip.prototype.initStar = function() {
    
_alpha 100;
    
/*
    _x = -30+random(60)+_root._xmouse;
    _y = -30+random(60)+_root._ymouse;
    */
    
_x = +100+random(60);
    
_y = +100+random(60);
    
amp 2+random(2);
    
lg 5+random(10);
    
speed random(10)+5;
    
_xscale 50+random(100);
    
_yscale _xscale;
}; 
@Rookie_BS: Vielen Dank für Deine Antwort, aber es funktioniert bei mir wirklich nur dann, wenn ich es in Version "Flash Player 5" publiziere.

Viele Grüsse,
Joe
Angehängte Dateien
Dateityp: fla sternenregen.fla (49,5 KB, 11x aufgerufen)
Dateityp: swf sternenregen.swf (1,7 KB, 21x aufgerufen)

Geändert von Lkwjoe (18-02-2010 um 16:00 Uhr)
Lkwjoe ist offline   Mit Zitat antworten
Alt 18-02-2010, 16:58   #4 (permalink)
Rookie_BS
 
Benutzerbild von Rookie_BS
 
Registriert seit: Sep 2004
Beiträge: 722
Ich denke es gibt da Syntax-"Fehler" (may be doch AS1 was du da hast).

Wenn du die Schlüsselworte in der Flash-Hilfe nachschlägst und unter AS2 schaust,
siehst du z.B. das die Vereinbarung eine Prototypes etwas anders aussieht...

Deins:
PHP-Code:
movieclip.prototype. ...
{
_alpha 100
...

AS2:
PHP-Code:
MovieClip.prototype.Funktionsname = function()
{
this._alpha 100// oder this.MCname._alpha = 100;
...

nur als Bsp.

_mfg
__________________
Wenn Sie glauben Ihnen ist klar was ich gesagt habe - dann haben Sie mich missverstanden! Alan Greenspan

Geändert von Rookie_BS (18-02-2010 um 17:00 Uhr)
Rookie_BS ist offline   Mit Zitat antworten
Alt 18-02-2010, 17:03   #5 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 4
Rookie_BS, danke schon mal für den Tipp! Werde ich versuchen und ggf. umsetzen.

Aber hast Du (oder jemand anderes) eine Idee für das eigentliche Problem?
Wie könnte man es erreichen, dass der Ablauf ("Sternenregen") solange wiederholt wird, solange die Maus über einem Kontrollfeld ist?
Evtl. den Aufruf in eine Funktion und diese dann sich selbst wieder aufrufen lassen?

Gruss,
Joe
Lkwjoe ist offline   Mit Zitat antworten
Alt 18-02-2010, 17:17   #6 (permalink)
Rookie_BS
 
Benutzerbild von Rookie_BS
 
Registriert seit: Sep 2004
Beiträge: 722
Indem du in kurzen Abständen (onEnterFrame) die Mausposition abfragst und
schaust ob sich Maus und "Kontrollfeld" berühren (? Button, Bild, Flashintern
MovieClip). Das geschiet per hitTest...

eine solche Definition könnte etwa so aussehen und auf ein Schlüsselbild
der Hauptzeitleiste gelegt werden:

EDIT: besser so - siehe auch FLA

PHP-Code:

stop
(); 

// Voraussetzung: leeren MovieClip anlegen, leer lassen, auf die Bühne packen und unter "Eigenschaften" mit "Mausfolger" benennen 

_root.onMouseMove = function() 

    
//if(_root.Kontrollfeld.hitTest(_root._xmouse,_root._ymouse, true) == true) // habe das erstmal rausgenommen da ich deine Kollisionobjekte nicht kenne... ;)
    //{ 
        
_root.Mausfolger._x _root._xmouse
        
_root.Mausfolger._y _root._ymouse
        
_root.Mausfolger.lassSterneRegnen(); 
    
//} 


MovieClip.prototype.lassSterneRegnen = function() 

    var 
uniqueNr:Number this.getNextHighestDepth(); 
    
this.attachMovie("stern""stern"+uniqueNr,uniqueNr);  
    
// Achtung: hier wird auf ein Bibliotheksobjekt namens "stern" zurückgegriffen 
    // Das heisst du legst einen MovieClip (Name: stern) mit einem Sternchen drin an (der ist ja dann in der Bibliothek) 
    // rechter Mausklick auf das Bibliotheks-Objekt > Verknüpfungen > Export für Actionscript anhaken... 
    // so wird dieses Objekt für Actionscript-Funktionen "verfügbar/zugänglich" gemacht 

    
this["stern"+uniqueNr].onEnterFrame = function() 
    { 
        if(
this._alpha 0)
        {
            
this._y+=3;
            
this._alpha -= 2;
            
this._rotation += 5;
        }
        else
        {
            
removeMovieClip(this);
        }
    } 

gibt es mehrere Objekte die mit hitTest geprüft werden sollen könnte man das
über eine for-Schleife regeln...

_mfg
Angehängte Dateien
Dateityp: fla rudimentaeresMasufolgerBeispiel.fla (51,0 KB, 16x aufgerufen)
__________________
Wenn Sie glauben Ihnen ist klar was ich gesagt habe - dann haben Sie mich missverstanden! Alan Greenspan

Geändert von Rookie_BS (18-02-2010 um 17:57 Uhr)
Rookie_BS ist offline   Mit Zitat antworten
Alt 18-02-2010, 20:35   #7 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 4
Hey Rookie_BS, super, tausend Dank!
Da hast Du Dir ja echt Mühe gemacht...
Werde es später ausprobieren und dann berichten.

Viele Grüsse,
Joe
Lkwjoe ist offline   Mit Zitat antworten
Alt 19-02-2010, 11:05   #8 (permalink)
Rookie_BS
 
Benutzerbild von Rookie_BS
 
Registriert seit: Sep 2004
Beiträge: 722
das sind aber nur Ansätze zum rum spielen. Es ist AS2 somit kannst du damit
weitermachen und es exportieren wie du es wolltest... mehr nicht der
Sternenschweif ist natürlich noch kein echter aber du kannst den bequem
erweitern bzw. umbauen.

Es ging mehr um die "neuere" Syntax und den Aufbau. Grundsätzlich kannst
du sicher sogar Teile deines alten Scripts verwenden du musst es nur in AS2
übersetzen. Die "alten" Schlüsselworte helfen dir sicher bei der Suche in der
Flash-Hilfe...

_mfg
__________________
Wenn Sie glauben Ihnen ist klar was ich gesagt habe - dann haben Sie mich missverstanden! Alan Greenspan
Rookie_BS ist offline   Mit Zitat antworten
Alt 11-02-2011, 18:40   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2011
Beiträge: 1
Hallo alle zusammen,

ich finde das Sternenstaub-Script auch toll.
Ich würde es gerne nur so haben das es rechts ins Bild kommt..runterregnet und verschwindet während ein Bild gleichzeitig mittels Alpha-Tween auftaucht ohne jeglichen Mouse-over.
Wie muss ich das anstellen das die Sternchen rechts "reinregnen" ?

Liebe Grüße
Maslyn
Maslyn 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mausverfolger und Lupen mit Flash 5 wolter Gestalten 2 26-06-2005 20:47
mausverfolger mit flash 5 manning Flash 4 und Flash 5 2 10-12-2003 15:09
Mausverfolger in Flash 5 robinson ActionScript 1 3 26-05-2003 12:30
Flash-Mausverfolger--wie einbinden? HackTor HTML und CSS 3 19-11-2002 00:26
Sternenstaub (Mausverfolger) rayden5_ Softwarearchitektur und Entwurfsmuster 15 30-10-2001 06:17


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele