Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-12-2006, 16:31   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 33
Klavier

bräuchte einen denkanstoss.
muss für ein projekt ein spiel machen und hab leider nicht wirklich eine ahnung ... wurde ins kalte wasser geworfen.
klavier:
die tasten des klaviers sind einzelne movieclips (dann kann man irgendwie mit eval oder arrays arbeiten ... wurde mir gesagt) der sound der noten ist in den einzelnen mc

ich möchte gern, dass beim drücken einer schaltfläche 2 von den 8 tasten zufällig und hintereinander abgespielt werden.

könnt mir jemand einen tipp geben wie ich das anstellen könnte?
schurli007 ist offline   Mit Zitat antworten
Alt 23-12-2006, 16:52   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Deine MCs brauchen Instanznamen ("c","d","e",...) dein button auch (dein_button) und dann könnte man das so machen:
PHP-Code:
var noten_mcs = ["c""d""e""f""g""a""h""c_"];
dein_button.onRelease = function() {
    
this.enabled false;
    var 
mc this[noten_mcs[random(noten_mcs._length)]];
    
mc.play();
    
mc.onEnterFrame = function() {
        if (
this._currentframe == this._totalframes) {
            
delete this.onEnterFrame;
            var 
mc this[noten_mcs[random(noten_mcs._length)]];
            
mc.play();
            
mc.onEnterFrame = function() {
                if (
this._currentframe == this._totalframes) {
                    
this._parent.dein_button.enabled true;
                    
delete this.onEnterFrame;
                }
            };
        }
    };
}; 
Wobei das halt nur schnell zusammengetippt ist, aber ich kenne ja den genauen Aufbau nicht. Ginge also bestimmt auch noch besser.

PS: Script gehört in die Hauptzeitleiste, nicht auf den Button und ich hab's nicht getestet.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 23-12-2006, 16:58   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 33
danke

ich werd es mal ausprobieren ...
bin froh das ich das script interpretiern kann ... soviel geht ja schon

ich sag mal danke im vorhinein
schurli007 ist offline   Mit Zitat antworten
Alt 23-12-2006, 17:11   #4 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ich mag mich auch täuschen, aber ich würde an den stellen, wo die variable "mc" definiert lieber schreiben:
var mc = _root[noten_mcs[random(_root.noten_mcs._length)]];

denn mit "this" wird evtl. auf einem falschen "scope" (keine ahung, wie man das auf deutsch nennt) nach dem noten_mcs-movieclip gesucht.
besonders im zweiten fall.

gruß, twister
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 23-12-2006, 17:16   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nö, stimmt schon was du sagst. Müsste dann eben ein _parent rein - oder man nimmt eval():
PHP-Code:
var mc = ["c"];
this.createEmptyMovieClip("c"1);
this.createEmptyMovieClip("test"2);
test.onEnterFrame = function() {
    
trace("this._parent: "+this._parent[mc[0]]);
    
trace("Eval: "+eval(mc[0]));
    
delete this.onEnterFrame
}; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 23-12-2006, 19:08   #6 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
was ich übrigens auch gerne mache (habe ich mir vor langer zeit mal irgendwo abgeguckt):

ich definiere eine variable "tl", die für die zeitleiste steht.
PHP-Code:
var tl this
var mc = ["c"];
this.createEmptyMovieClip("c"1);
this.createEmptyMovieClip("test"2);
test.onEnterFrame = function() {
    
trace("this._parent: "+this._parent[mc[0]]);
    
trace("Eval: "+eval(mc[0]));
    
trace("tl: "+tl[mc[0]]);
    
delete this.onEnterFrame
}; 
__________________
Design ist AUCH Geschmackssache.
Mr.Twister ist offline   Mit Zitat antworten
Alt 23-12-2006, 19:29   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 33
die beiden töne werden schon abgespielt ... außer die variable bekommt den ton zweimal hintereinander zugeteil, dann spielt er ihn nur einmal ... aber das schaff ich schon.

wollt noch fragen was für vorteile eval () oder _parent hat?
schurli007 ist offline   Mit Zitat antworten
Alt 23-12-2006, 22:21   #8 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
ist im grunde wurscht.
es geht so oder so nur darum, den korrekten pfad des movieclips anzusteuern.
eval kann hin und wieder ein bißchen schreibarbeit sparen, bietet aber vor allem den vorteil, daß man damit auch einen string in eine movieclip-instanz konvertieren kann. würdest du also in einer xml-datei einen namen schreiben und in flash einen mc dieses namens haben, könntest du mit eval(string) den movieclip ansteuern. spielt für deinen momentanen fall aber keine rolle.

ich persönlich hätte in deinem fall die methode mit tl = this benutzt, die ich in meinem letzten posting demonstriert habe

Edit:
es kann sein, daß der tin kein zweites mal abspielt, weil er auf dem letzten frame stehenbleibt.
du kannst ja noch dazuschreiben, daß er - wenn er fertig ist - auf frame 1 zurückspringen soll.
__________________
Design ist AUCH Geschmackssache.

Geändert von Mr.Twister (23-12-2006 um 22:23 Uhr)
Mr.Twister ist offline   Mit Zitat antworten
Alt 27-03-2007, 09:32   #9 (permalink)
zer
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 14
ein Klavier? - hier..:

http://www.zer.ch/flash/piano.html

zer 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 18:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele