Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-03-2004, 15:53   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Ort: USA
Beiträge: 130
asfunction link

Ich lade aus einer XML datei eine reihe von namen in ein textfeld. Die Namen versehe ich jeweils mit einem Link per asfunction. Ich kann zwar den Link zuweisen, aber ich bekomme die Referenz auf die asfunction nicht hin. Hab das Gefuehl, dass der Pfad nich stimmt...
ActionScript:
  1. thePrintees = new Array();   
  2. theText = new Array();
  3.             for (var i=0; i<theLength; i++) {
  4.                 thePrintees[i] = pC.attachMovie("theMC", "theMC" + i, i);
  5.                 thePrintees[i].theName.text = testXmlItem[i].attributes.name;
  6.                 thePrintees[i].theShop.text = testXmlItem[i].attributes.shop;
  7.                 thePrintees[i].theInfo.text = testXmlItem[i].attributes.info;
  8.                 ter=theText.push("<A HREF=\"asfunction:_root.DoSwap,"+i+"\">"+testXmlItem[i].attributes.name+"</a>"+"<br>")
  9.                
  10.             }
  11.  
  12. doSwap = function(arg){
  13.     trace("HIT: "+arg)
  14.     arg = zahl
  15.     thePrintees[zahl].swapDepths(5000)
  16. }

Kann mir jemand auf die Spruenge helfen, wie ich die Funktion ansprechen kann?
osoful ist offline   Mit Zitat antworten
Alt 30-03-2004, 16:15   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
attachMovie gibt keine MC-Referenz zurück, oder??

deine swap-funktion ist etwas verwirrt, oder nicht? arg = zahl?? Nicht andersrum?

Was soll eigentlich die funktion tun? Wann soll sie aufgerufen werden? Blick ich irgendwie nicht, was du da machst...
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-03-2004, 16:27   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Ort: USA
Beiträge: 130
ok, ich versuchs nochmal etwas ausfuehrlicher:
Ich kade mein XML file:
PHP-Code:
<?xml version="1.0"?>
    <persons>
        <person id="1" name="John Do" shop="John 's Shop" info="some Info"/> etc.
fuer jede childNode attache ich den MovieClip "theMC" in einen emptyMovieClip "pC". Dadurch erhalte ich ein Array [thePrintees = new Array();] mit allen erstellten MovieClips, denne ich dann jeweils die attribute zuweisen kann. Das funktioniert auch alles ohne probleme. Das einzige, was nicht klappt ist das aufrufen der Funktion doSwap();
ActionScript:
  1. loadBtn_mc.onRelease = function(){
  2.     this.gotoAndStop(1);
  3.     testXml = new XML();
  4.     testXml.ignoreWhite = true;
  5.     testXml.onLoad = function() {
  6.         testXmlItem = this.firstChild.childNodes;
  7.         theLength = testXmlItem.length;
  8.         pC = _root.createEmptyMovieClip("printContainer",50);
  9.         cont = _root.createEmptyMovieClip("numContainer",51);
  10.         pC._x = 12;
  11.         pC._y = 45;
  12.         cont._x = 480;
  13.         cont._y = 86;
  14.         thePrintees = new Array();
  15.         theRep = new Array();
  16.         theText = new Array();
  17.             for (var i=0; i<theLength; i++) {
  18.                 thePrintees[i] = pC.attachMovie("theMC", "theMC" + i, i);
  19.                 thePrintees[i].theName.text = testXmlItem[i].attributes.name;
  20.                 thePrintees[i].theShop.text = testXmlItem[i].attributes.shop;
  21.                 thePrintees[i].theInfo.text = testXmlItem[i].attributes.info;
  22.                 ter=theText.push("<A HREF=\"asfunction:_root.doSwap,"+i+"\">"+testXmlItem[i].attributes.name+"</a>"+"<br>")
  23.                
  24.             }
  25.            
  26.         nText = theText.toString();
  27.         tnText=nText.split(",").join("")
  28.         clipTF.htmlText = tnText
  29.     }
  30.     testXml.load("test.xml");
  31. };
  32.  
  33. doSwap = function(arg){
  34.     trace("HIT: "+arg)
  35.     thePrintees[zahl].swapDepths(5000)
  36. }
osoful ist offline   Mit Zitat antworten
Alt 30-03-2004, 16:55   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
vielleicht musst du noch html auf true setzten?

bei mir geht das hier:
ActionScript:
  1. _root.createTextField("test",1,100,100,200,200);
  2.  
  3. func = function(arg)
  4. {
  5.     trace("arg: "+arg);
  6. };
  7.  
  8. x = 2;
  9.  
  10. test.html = true;
  11. test.htmlText = "halli <a href=\"asfunction:func,"+x+"\">Hier klicken</a> Hallo";

genau so, wie es ist.
Janoscharlipp ist offline   Mit Zitat antworten
Alt 30-03-2004, 17:02   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Ort: USA
Beiträge: 130
Unhappy

ja, das klappt bei mir auch, wenn die funktion und das textfeld beide in root liegen. das ist ja genau das problem, das meine asfunction:doSwap() nicht gefunden wird.
osoful ist offline   Mit Zitat antworten
Alt 30-03-2004, 19:29   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Ort: USA
Beiträge: 130
problem gefunden:

mit --- tnText=nText.split(",").join("") --- hab ich auch das komma zwischen der Funktion und dem Argument entfernt.

thx.
osoful ist offline   Mit Zitat antworten
Alt 30-03-2004, 20:54   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
wo sich überall Fehler einschleichen können, unglaublich!
Janoscharlipp 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 13:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele