Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2005, 13:13   #1 (permalink)
Flashnoob
 
Benutzerbild von Schokobrot
 
Registriert seit: Jan 2005
Beiträge: 16
This-referenzierung

Hallo erstmal und sorry falls ich lästig bin, aber folgende Frage:

Ich habe ein kleines Spielchen konzipiert (Bilder per Drag&Drop in die richtige Reihenfolge bringen)... funktioniert tadellos, doch wenn ich die Datei auslagere, sprich außerhalb verwenden möchte (also in einer anderen datei eingebaut) funktioniert es nicht mehr.
Ich kann mir natürlich schon denken woran es liegt - daran das das flash die zuweisung von der ausgelagerten datei nicht mehr erkennt...nur weiß ich nicht wie ich das hinbekommen soll.

So siehts zur zeit aus...

Frame1: (zuweisung der objekte auf die targets (help1-14))

Code:
help1 = object7;
help2 = object12;
help3 = object5;
help4 = object2;
help5 = object10;
help6 = object3;
help7 = object9;
help8 = object14;
help9 = object1;
help10 = object4;
help11 = object6;
help12 = object11;
help13 = object8;
help14 = object13;

_global.dummy = false;
(hatte das auch shcon mit random-zuweisefunktion die auch funktioniert, aber das ist hier nicht wichtig...)

object sind die beweglichen Teile targets die auf die sie gezogen werden...


Frame2 (hier liegt der Hund begraben) :

Code:
i=1;
for(i;i<15;i++)
{
	j=1;
	
	for(j;j<15;j++)
	{
		if(this["object"+i].hitTest(this["target"+j]))
		{
			if (_global.dummy == true) return;			
					
			this["help"+j]._x = this["target"+j]._x;
			this["help"+j]._y = this["target"+j]._y;
			
			if (this["object"+i] <> this["help"+j]) {
				
				k=1;
				for(k;k<15;k++) {
					if (this["help"+k] == this["object"+i]) {
						this["help"+j]._x = this["target"+k]._x;
						this["help"+j]._y = this["target"+k]._y;
						this["help"+k] = this["help"+j];
					}
				}
			}
			
			
			this["object"+i]._x = this["target"+j]._x;
			this["object"+i]._y = this["target"+j]._y;
			this["help"+j] = this["object"+i];	
		}
	}
}

Das Problem (meiner Meinung nach) ist das er das this[....] nach der auslagerung nicht mehr zuweisen kann.....wäre für hilfe sehr sehr dankbar^^
__________________
So long...
Schokobrot ist offline   Mit Zitat antworten
Alt 07-01-2005, 13:23   #2 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hallo,
das "this" musst Du ersetzen durch den richtigen Pfad zu Deinem
Film, z.B. für einen Film auf der Hauptzeitleiste _level0.deinmovieclip._x
Da gibts ein sehr gutes Tutorial von Rena.
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 07-01-2005, 13:51   #3 (permalink)
Flashnoob
 
Benutzerbild von Schokobrot
 
Registriert seit: Jan 2005
Beiträge: 16
Sorry, ich denke ich habe mich vorhin falsch ausgedrückt. Nach Rücksprache mit einem Kollegen formuliere ich meine Frage nun neu:

Wie ist es mir möglich Objekte so zu referenzieren, das diese auch bei Einbau in einer anderen .swf-Datei funktionieren. Zum Beispiel:

Movie1.swf lädt im 2.Frame in das Objekt _root.InhaltExtern über die Methode loadMovie("Movie2.swf",_root.InhaltExtern) einen 2.externen Film (eben diesen Movie2.swf). In diesem 2.Film gibt es ein Objekt Object#1 etc... und diese haben eigene Methoden. Diese Methoden funktionieren über Referenzierung mit this natürlich nicht mehr. Wie ist es mir also möglich externe SWF-Files bzw. deren Objekte so zu referenzieren dass sie in anderen .swf-Files trotzdem noch einwandfrei funktionieren und die Methoden korrekt ausgeführt werden.

Danke im voraus
__________________
So long...
Schokobrot ist offline   Mit Zitat antworten
Alt 07-01-2005, 14:01   #4 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hallo,
achso... k.A.
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 07-01-2005, 15:07   #5 (permalink)
Flashnoob
 
Benutzerbild von Schokobrot
 
Registriert seit: Jan 2005
Beiträge: 16
Danke trotzdem für deine Bemühungen Hoffentlich findet sich jemand der mir helfen kann, denn ich seh weder aus noch ein....
__________________
So long...
Schokobrot ist offline   Mit Zitat antworten
Alt 07-01-2005, 16:59   #6 (permalink)
lernwillig
 
Benutzerbild von 23012
 
Registriert seit: Jan 2002
Ort: auf dem Land
Beiträge: 1.327
Hi Schokobrot,
gehört das nicht eigentlich in den OOP Bereich? Klassen,
Methoden, Vererbung usw. sind mir Fremdwörter.
Bestimmt können Dir die cracks dort weiterhelfen!!
Gruss
23012
__________________
[TUTORIAL] Nahtlose Muster erstellen in Photoshop
23012 ist offline   Mit Zitat antworten
Alt 07-01-2005, 17:49   #7 (permalink)
Flashnoob
 
Benutzerbild von Schokobrot
 
Registriert seit: Jan 2005
Beiträge: 16
Stimmt eigentlich....naja findet sich vielleicht ja jemand der so nett is und es vershciebt^^
Oder auch sonst jemand der sich auskennt und mir helfen kann *hoffnungsvollschaut*
__________________
So long...
Schokobrot ist offline   Mit Zitat antworten
Alt 07-01-2005, 19:07   #8 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
was ist denn target ??? und wo liegt das?


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 07-01-2005, 19:09   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
außerdem ist 'this' ja gerade dafür gut auch über hirachien hinweg immer korrekt zu referenzieren...
die einzige frage, die ich immo habe ist, wo und was ist 'target'+i ?
und wo liegen diese tragets?


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 07-01-2005, 21:00   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das Script kommt mir sehr komisch vor, ich verstehe gar nicht, was da passiert?
Bist du sicher, dass es mal funktioniert hat?

Wenn es darum geht, die Objects den richtigen Targets zuzuordnen, muesste es im Prinzip doch so funktionieren:
Am Anfang liegen die Objects und die Targets verstreut auf dem Bildschirm herum. Dann draggt der User ein Object. Beim Drop auf einem Target snappt das Object auf die Position des Targets ein. Ansonsten bleibt das Object einfach liegen. Anschliessend überprüft man, ob alle Objects auf den richtigen Targets liegen. Wenn alle Objects richtig liegen, ist das Spiel vorbei. Richtig?

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 08-01-2005, 15:51   #11 (permalink)
Flashnoob
 
Benutzerbild von Schokobrot
 
Registriert seit: Jan 2005
Beiträge: 16
bokel: so in etwa. es gibt auch noch einen dritten script-frame aber mit dem will ich euch gar nicht belasten....
Also es sieht wie folgt aus: Es gibt 14 objekte und 14 hintergründe. AUf diesen hintergründen (die ja größer sind als die objekte) liegen (natürlich unsichtbar) die targets, wie du richtig erkannt hast, die teile bei denen das object einschnappt.
Am anfang liegen alle objekte auf "falschen" targets, der user muß sie in die richtige reihenfolge droppen - bei interesse kann ich dir eine version zukommen lassen.

Es hat nicht nur einmal funktioniert, es funktioniert jedesmal^^
Wie ich schon sagte es ist folgendes Problem: solange ich es normal starte bzw auch wenn ich die swf file alleine laufen lasse funktioniert es tadellos...

Das Problem ist folgendes:
Movie1.swf lädt im 2.Frame in das Objekt _root.InhaltExtern über die Methode loadMovie("Movie2.swf",_root.InhaltExtern) einen 2.externen Film (eben diesen Movie2.swf). In diesem 2.Film gibt es ein Objekt Object#1 etc... und diese haben eigene Methoden. Diese Methoden funktionieren über Referenzierung mit this natürlich nicht mehr. Wie ist es mir also möglich externe SWF-Files bzw. deren Objekte so zu referenzieren dass sie in anderen .swf-Files trotzdem noch einwandfrei funktionieren und die Methoden korrekt ausgeführt werden?

*hofft auf hilfe* danke^^
__________________
So long...
Schokobrot ist offline   Mit Zitat antworten
Alt 08-01-2005, 15:57   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Die Objekte solltest du dann über _root.inhaltExtern["object" + i] ansteuern können.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 08-01-2005, 16:12   #13 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ralf...aber er holt doch diesen film in diesen contianer rein.
und das script, dass er hatte, liegt doch in dieser externen swf, die nun im contianer liegt.
und wenn ich dort n script habe, dann funktioniert doch der verweis auf this['object'+i] immer noch.
*gugg*
außer er hat das script dort nicht mehr liegen, sondern hat es jetztb zwischenzeitlich in seinen hauptfilm rein.

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 08-01-2005, 16:32   #14 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ja,
wenn Schokobrot einfach den kompletten Film irgendwoanders reinlädt, in dem das Script, die Targets und die Objekte liegen, dann sollte das ohne weiteres funktionieren.
Ich dachte jetzt, das Script liegt im ersten Film und die Objekte im zweiten.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 08-01-2005, 16:55   #15 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
mal sehen, was er dazu sagt...

p.s. schönes wochenende wünsch ich...


greetz

kelor
kelor 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 06:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele