[AS3] Variabel wordt ander uitgelezen door java in as3

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hé!

Ik ben al een tijdje bezig met een XML banner te maken in AS3. Deze werkt helemaal, maar omdat IE8 alle navigatetoURL's blocked met zun popup blocker heb ik doormiddel van javascript hier een workaround voor gemaakt. Het probleem is alleen, aangezien dit een XML banner is (en dus al zijn gegevens willekeurig uit een xml feed haalt) dat de link iedere keer anders is. Niet alleen als je de banner overnieuw laadt, maar als de *.swf is afgelopen en overnieuw begint(looped), pakt ie random weer nieuwe gegevens uit de xml feed en pakt hier dus ook de nieuwe link bij. Daarbovenop, werkt de banner ook nog met zogenaamd clickTag, zodat de click gemeten kunnen worden.

Het probleem is, dat de variabele totalLink helemaal klopt als deze gewoon getraced wordt, maar zodra deze wordt aangeroep in het javascript anders is.

Dit is de code waar de java en de variabel inzitten
JavaScript:
1
2
3
4
5
6
7
8
var paramList:Object = this.root.loaderInfo.parameters;
var totalLink = paramList['clickTag']+newLink;
trace(totalLink);

myButton.addEventListener(MouseEvent.CLICK, function(){
ExternalInterface.call('(function (){ var f = document.createElement("form");document.body.appendChild(f);f.style.display="none";f.setAttribute("target","_blank");f.setAttribute("method","GET");f.setAttribute("action","'+totalLink+'");f.submit(); })()');});

}


Zoals je ziet bestaat de variabel totalLink uit 2 delen. Het clickTag gedeelte wat hard erin staat en altijd hetzelfde is. Deze heb ik ook al veranderd en hard erin gezet dan wordt het dus bv

JavaScript:
1
var totalLink = "http://www.nu.nl"+newLink;


Als ik dit doe, dan gaat deze alleen naar http://www.nu.nl toe, terwijl als ik het trace, krijg ik de volledige link dus http://www.nu.nl + de variabele newLink.

Ik snap het maar niet en kom hier niet uit, ik heb ook niet zoveel verstand van java, misschien dat iemand het zo ziet? Alvast mega bedankt!!!

Acties:
  • 0 Henk 'm!

  • bindsa
  • Registratie: Juli 2009
  • Niet online
- Heb je je script al gedebugd met FireBug
- Wil je de volgende keer [code=javascript]-tags gebruiken
- Kan het zijn dat je de slash na nu.nl vergeet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb de code tags aangepast.

De slash maakte geen verschil

Heb firedebug net geprobeerd. Ben geen fouten tegengekomen, snap wel niet helemaal hoe de addon werkt. Aangezien het gewoon een swf is met daarin een AS3 code op de tijdlijn die op zijn beurt doormiddel van de external interface package javascript importeert(en dus java code in de *.swf staat) weet ik niet als ik hiermee wel iets kan.

Een ander probleempje wat ik net ben tegengekomen is dat bij iedere loop, de variabel die in de java staat niet geleegd wordt, maar er steeds bijgeplaats wordt. Dus als ik de swf 5 keer laat loopen, en dan op de swf klik opent ie 5 popups.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Iemand al een idee? Naar mijn mening heeft het te maken met de java, die niet normaal niet werkt met het begrip van een tijdlijn. Hierdoor wordt de variabel dus op een of andere manier niet leeg gegooid. Misschien heeft er iemand verstand van java?

Ik heb in de functie zelf de variabel naar 0 gezet. Maar dat maakt nog geen verschil.

Alvast bedankt!

ps. Het probleem met de meerdere pop-ups is niet in IE8 of Safari. Alleen in firefox. Ik heb het gevoel dat IE8 en safari de rest van de pop-ups blockeren.

[ Voor 18% gewijzigd door Verwijderd op 26-04-2010 09:43 ]


Acties:
  • 0 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online

Tsjilp

RS[I]ds

java != javascript

Je tracet je var buiten de onclick functie, trace hem daarbinnen eens, klopt de link dan ook?

En dat je 5 popups krijgt komt omdat je waarschijnlijk elke keer opnieuw een listener aan de button hangt, 5 loops = 5 listeners = 5 popups

Raar... Is zo gek nog niet


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De trace in de functie geeft weer dat er dus na 1 loop, de gegevens gewoon aan de variabel toegevoegd worden. Dus er komen na 2 loops 3 links in te staan. Maar deze links kloppen wel. En dat vind ik juist zo vreemd. De data die in de variabel staat wordt in de javascript op een andere manier uitgelezen lijkt het.

Het probleem met de 5 popups, heb ik niet met een simpele navigatetoURL. Dan opent deze gewoon 1 venster, maakt niet uit hoevaak gelooped

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het probleem met de 5 popups zou ik evt kunnen oplossen met een removelistener. Op de volgende manier denk ik dan:

JavaScript:
1
myButton.removeEventListener(MouseEvent.CLICK, onMouseClick);


Maar waar plaats ik deze dan? Na de addlistener zorgt dat deze niet meer is aan te roepen, ervoor heeft geen effect, en in de functie wordt deze alleen aangeroepen zodra erop geklikt wordt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben ik misschien onduidelijk? Of heeft echt niemand een id? Of is er te goed weer buiten :p?

[ Voor 21% gewijzigd door Verwijderd op 28-04-2010 15:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben alweer een stukje verder gekomen. De link die overal goed getraced werd (zelfs via de alert functie in javascript) wordt niet goed geopend omdat java om een of andere reden alle tekst die achter het vraagteken(die de link bevat voor php) staat verwijderd.

Ik heb van de variabel een string gemaakt, maar toch haalt javascript alles achter het vraagteken eruit. Iemand een oplossing hiervoor?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Niemand???

Ik bedoel, ik ben geen meester. En hier zitten er wel een paar, dusss....!!!
Pagina: 1