Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-10-2007, 09:55   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: fischbachau-obernbayern
Beiträge: 18
Problem bei getURL und variable

Hallo @ all,
ich habe ein kleines problem in einer funktion.
ich übergebe der funktion ein zweidimensionales array das folgendermaßen aufgebaut ist:
Code:
var setArr = new Array(["tnstanzName1","target1"],["InstanzName2","target2"],...);
meine funktion soll nun verschiedene events für die Instanzen (es sind MCs) definieren. Zum Beispiel:
Code:
_root.InstanzName1.onRelease = function(){getURL("target1.php");};
_root.InstanzName1.onRollOver = function(){getURL("javascript:target1()");};
_root.InstanzName1.onRollOut = function(){getURL("javascript:out()");};
meine funktion sieht so aus:
Code:
function setMouse(myArr:Array) {
	for (i = 0; i < myArr.length; i++) {
		var php = myArr[i][1]+".php";
		var js = "javascript:"+myArr[i][1]+"()";
		trace(myArr[i][0]);
		trace(php);
		trace(js);
		_root[myArr[i][0]].onRelease = function(){getURL(php);};
		_root[myArr[i][0]].onRollOver = function(){getURL(js);};
		_root[myArr[i][0]].onRollOut = function(){getURL("javascript:out()");};
	}
}
Problem sieht jetzt wie folgt aus:
Es werden zwar alle MCs deren Instanznamen im Array stehen mit den jeweiligen events belegt, jedoch is bei allen das Verweisziel in den getUrl aufrufen das gleiche, nämlich das letzte Arrayelement.

Ich habe schon sehr viel gesucht, leider erfolglos.
Ich bin noch as anfänger, habe aber php, js und C Programmiererfahrung.

Bin dankkbar für jede hilfe

greetz

xdream
xdream1328 ist offline   Mit Zitat antworten
Alt 26-10-2007, 12:28   #2 (permalink)
flash gordon
 
Benutzerbild von buntwelt
 
Registriert seit: Jan 2002
Ort: regensburg
Beiträge: 73
Wertzuweisung

Hallo,

deine Variablen sind allgemein gueltig d.h. es ist logisch das

PHP-Code:
var php myArr[i][1]+".php"
immer wieder ueberschrieben wird sobald sich [i] aendert. Es gibt diese Variable schliesslich nur 1 x.

Du musst also den Wert individualisieren, z.B.

PHP-Code:
set(_root[myArr[i][0]].myPHPmyArr[i][1]+".php"]; 
(das 'set' ist noetig um dynamische Variablen zu erzeugen, bin mir nicht sicher ob es noch eine andere Methode gaebe)

und dann abrufen mit:

PHP-Code:
_root[myArr[i][0]].onRelease = function(){getURL(this.myPHP);}; 
Ich hab´s nicht probiert, aber es sollte funzen.
__________________
Kaeffchen? - Ja, ich weiss, DU lebst in einer Grossstadt...
buntwelt [medienagentur]
buntwelt ist offline   Mit Zitat antworten
Alt 26-10-2007, 13:21   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: fischbachau-obernbayern
Beiträge: 18
hallo,

danke erst mal.
Dein erklärung leuchtet ein.

Ich hab das jetzt nach deinem vorschlag geändert, wenn ich jedoch jetzt die variable trace bekomme ich immer ein undefined.

Vielleicht hättest du hier noch einen vorschlag.

Danke und grüße

xdream
xdream1328 ist offline   Mit Zitat antworten
Alt 26-10-2007, 13:29   #4 (permalink)
flash gordon
 
Benutzerbild von buntwelt
 
Registriert seit: Jan 2002
Ort: regensburg
Beiträge: 73
Mompl, ich probier grad mal mit deinem Code aus.
__________________
Kaeffchen? - Ja, ich weiss, DU lebst in einer Grossstadt...
buntwelt [medienagentur]
buntwelt ist offline   Mit Zitat antworten
Alt 26-10-2007, 13:44   #5 (permalink)
flash gordon
 
Benutzerbild von buntwelt
 
Registriert seit: Jan 2002
Ort: regensburg
Beiträge: 73
Bei mir tuts ;)

Hossa,

ich habs probiert (4 Buttons mit den richtigen Namen sind auf der Buehne!):

PHP-Code:
var setArr = new Array (["instanzName1""target1"], ["instanzName2""target2"], ["instanzName3""target3"], ["instanzName4""target4"]);
//
//
function setMouse (myArr:Array)
{
    for (
0myArr.lengthi++)
    {
        
// hier kommt die individuelle Definition
        
set ([myArr[i][0]] + ".myPHP"myArr[i][1] + ".php");
        
set ([myArr[i][0]] + ".myJS""javascript:" myArr[i][1] + "()");
        
// functionszuweisungen - wie gehabt
        
_root[myArr[i][0]].onRelease = function ()
        {
            
trace ("mein PHP: " this.myPHP);
            
//getURL (php);
        
};
        
_root[myArr[i][0]].onRollOver = function ()
        {
            
trace ("mein JS: " this.myJS);
            
//getURL (js);
        
};
        
_root[myArr[i][0]].onRollOut = function ()
        {
            
//getURL ("javascript:out()");
        
};
    }
}
//
setMouse (setArr); 
Ich hab´s mit Flash 8 gemacht und auch als Flash 8 - AS 2.0 veroeffentlicht
__________________
Kaeffchen? - Ja, ich weiss, DU lebst in einer Grossstadt...
buntwelt [medienagentur]
buntwelt ist offline   Mit Zitat antworten
Alt 26-10-2007, 14:02   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Ort: fischbachau-obernbayern
Beiträge: 18
Hallo,

vielen Dank!
Funzt alles tadellos.
Code:
set ([myArr[i][0]] + ".myPHP", myArr[i][1] + ".php");
set ([myArr[i][0]] + ".myJS", "javascript:" + myArr[i][1] + "()");
dass der Punkt in den string muss wär mir nie im leben eingefallen

Greetz

xdream
xdream1328 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 04:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele