| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2002
Beiträge: 83
|
Hallo Ich habe einen mc (name="clip") mit dem as erstellt: Code: onClipEvent (mouseDown) {
if (this.hitTest(_xmouse, _ymouse, true)) {
trace("hit");
}
} Wenn ich jedoch das nahezu identische script in die Hauptbühne lege, funktioniert es. Code: clip.onMouseDown=function(){
if (this.hitTest(_xmouse, _ymouse, true)) {
trace("hit");
}
} Ich weiss hier einfach nicht weiter, bin für jede Hilfe sehr dankbar. slapy |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Feb 2002
Beiträge: 83
|
die 2. Variante ist natürlich auf den ersten Blick schöner, doch da ich den mc duplizieren möchte, also auch den code der darin steht, finde ich die erste Variante aber sehr viel komfortabler. komischerweise ist mir dieses nicht funktionieren fast gleicher codes nochmal aufgefallen, und zwar hier: Das funktioniert: Code: on (release) {
duplicateMovieClip("clip1","clip2",84545);
this["clip2"]._x=0;
this["clip2"]._y=0;
} Code: but.onRelease=function(){
duplicateMovieClip("clip1","clip2",84545);
this["clip2"]._x=0;
this["clip2"]._y=0;
} |
| | |
| | #5 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
is ja auch klar weil im 2. beispiel versucht er den duplicate an den button und buttons haben keine duplicateMC methode. du müßtest das so schreiben: PHP-Code: immer wenn du sowas machst: instanzname.onIrgendwas = function() { } dann ist innerhalb der klammern der scope auf instanzname, d.h. wenn du schreibst: instanzname.onIrgendwas = function() { zahl = 3; } passiert dasselbe als wenn du schriebst: instanzname.zahl = 3;
__________________ |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Feb 2002
Beiträge: 83
|
Danke erstmal Aber dann dürfte duplicateMovieClip... im button auch nicht funktionieren oder? Tuts aber. Und deine Variante mit _root.dupli... funktioniert leider auch nicht. Ich habe im Anhang mal die Datei. Ändere die Funktion mal nach deinen Vorstellungen, denn bis jetzt klappts nicht. Um zu deiner Erklärung zu kommen: Es ist doch egal ob ich: but.onRelease=function(){zahl=1;} oder ob ich on(release){zahl=1;} mache. Das Resultat ist das Gleiche. Die "zahl", die auf der Hauptbühne definiert ist ändert sich. |
| | |
| | #9 (permalink) | |
| flashoholika Registriert seit: May 2002 Ort: Good old cologne
Beiträge: 118
| Code: // so funzt das von der Timeline aus
but.onRelease=function(){
this._parent.clip1.duplicateMovieClip("clip2",100);
this._parent.clip2._x=150;
this._parent.clip2._y=150;
}
// und so vom Button aus
on (release) {
duplicateMovieClip("clip1","clip2",84545);
this["clip2"]._x=0;
this["clip2"]._y=0;
} Zitat:
Bei "on(release){zahl=1;} " änderst du den wert in _root ( wenn der Button in _root liegt! Bei but.onRelease=function(){zahl=1;} änderst du den Wert im Button! Beweis: Code: on(release){trace("Von Button aus: "+this);}
but.onRelease=function(){trace("Von Timeline aus: " + this);}
__________________ -----------------------> www.morshiba.de <----------------------- www.koelnbeben.de <----------------------- www.takitasworld.de -----------------------> AchimX *die ungelösten Fälle des FF* | |
| | |
| | #10 (permalink) | |
| querdenker Registriert seit: Jun 2001 Ort: formel1-stadt hockenheim
Beiträge: 4.731
| Zitat:
des stimmt leider so nicht... der duplicate wird korrekt gesetzt... aber er sucht den mc dann innerhalb des buttons, weil ActionScript:
das scoping INNERHALB einees onEvents IMMER auf das objekt zeigt, dass den event hat... in dem fall ist innerhalb des events ein 'this' der button selbst... und ActionScript:
existiert nicht...denn der wurde, da ja ohne vorangestelltes this dupliziert, und ist deshalb in der timeline, in der das script liegt, wiedeer zu finden greetz kelor | |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Feb 2002
Beiträge: 83
|
Danke nochmal. @Morshiba Also wenn ich ein dynamisches Textfeld mit der Variablen zahl auf meine Bühne lege, und die beiden genannten Methoden probiere, geht die zahl immer auf eins, also ändere ich doch den Wert zahl in der Bühne auch wenn ich but.onRelease... in der Hauptzeitleiste verwende. Beweis siehe Anhang. Bitte verbessere mich unbedingt, wenn das nicht stimmt! @Kelor Was du mit dem "this" sagt leuchtet mir ein, aber warum kann ich das this.clip2._x... im Button selber nutzen, also bei on(release){...} ? Wäre es nicht logischer, wenn dort auch nur _root. gehen würde? Geändert von slapy (16-07-2004 um 17:58 Uhr) |
| | |
| | #12 (permalink) | |
| querdenker Registriert seit: Jun 2001 Ort: formel1-stadt hockenheim
Beiträge: 4.731
| Zitat:
mach mal folgendes... lege auf einen button dieses script hier... ActionScript:
und mach auch mal das hier in der hauptzeitleiste: ActionScript:
und siehst du den unterschied...? die erste syntax ist noch alte 5er-syntax... die andere ist die elegantere, neuere - und auch bessere/saubere - MX-syntax... ab flashMX ist Button als auch TextField ein vollwertiges Object, wie MovieClip...und erkennt sich auch als solches, wenn man 'this' ruft... allerdings NUR korrekt in der modernen variante, der onEvents... ich rate jedem meiner schüler, seit es MX gab, nur und ausschließlich die event-syntax in der zeitleiste zu nutzen und die alte form der clip-events zu unterlassen... greetz kelor | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |