kostenloser Webspace werbefrei: lima-city


Übergabe einer Flash-Variable an Javascript

lima-cityForumDie eigene HomepageFlash und Silverlight

  1. Autor dieses Themas

    b****r

    Hi Leute.

    ich hab da ein Problem.

    (kb ist in diesem fall kilobyte, ich weis ich sollte KB schreiben)

    Ich möchte eine Variable via getURL an Javascript übergeben.
    Flash:
    text = "das ist blindtext";
    getURL("javascript:meine_function('"+text+"')");

    HTML:
    <scipt tag>
    function meine_function (variable)
    {
      alert(variable);
    }
    </script>


    Das funktioniort ganz gut sowohl im IE als auch FF und Safari.

    Jetzt zu meinem Problem:
    Wenn die Flash-variable "text" mehr als 2048 Zeichen hat (>2kb) und ich den IE benutze wird die funktion "meine_function" nicht aufgerufen.
    Auch wenn ich zb:
    Flash:
    text = "mehr als 2048 zeichen blindtext";
    getURL("javascript:alert('"+text+"')");

    aufrufe funktioniert das im IE nicht (=es kommt kein alert).

    Zuerst dachte ich es liegt an Javascript im IE, aber wenn ich das ganze mit
    <a href = "#" onClick = "meine_funcktion('mega_langener_text_sogar_größer_als_10_kb')">

    mache funktioniert das unter IE.

    Laut google ist die Variablengrößenbeschränkung im Flash 100kb. Man kann diese auf 10kb heruntersetzen (was ich nicht getan habe). aber selbst mit 10KB sollte ein text der 2049 zeichen lang ist übertragen werden.

    Hat irgendwer zufällig eine idee warum das beim IE nicht funktioniert aber überall sonst schon?
    ach und flash player version im IE ist die "selbe" wie im FF.

    Nachtrag: wer sich fragt warum das ganze:
    Ich habe 2 swfs (nebeneinander). in beiden kann man text eingeben und wenn der user auf "speichern" geht sollen natürlich auch beide texte gespeichert werden. Die Variablen werden an Javascript übergeben der sie in ein Hidden-feld einträgt und danach das formular an php sendet (das funktioniert auch alles, nur im IE eben nur wenn die einzelnen Texte <2048 Zeichen lang sind).


    Beitrag geändert: 19.11.2008 14:27:43 von beliar
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t*****b

    Warum gehst du den Umweg über JavaScript? Du kannst doch direkt in Flash Dateien laden:

    AS:
    var speichern = new LoadVars();
    
    speichern.onLoad=function(success) {
     if(success) {
      if(speichern.member == "ok") {
       trace("wurde gespeichert");
      }
     }
    }
    
    speichern.load("speichern.php?text="+text);


    PHP:
    <?php
    
    // script zum speichern
    if ($wurdegespeichert) {
     echo "ok";
    }
    
    ?>



    Beitrag geändert: 19.11.2008 14:41:47 von trueweb
  4. Autor dieses Themas

    b****r

    ich gehe den umweg über javascript weil ich 2 swfs habe (in einer tabelle nebeneinander) und der user der den text da eingibt soll nur 1 mal auf "speichern" klicken.
    nach dem click setz ich eine variable (via javascript) in flash1 auf true.
    das verursacht ein aufrufen einer funktion die den content des textfeldes an javascript übergibt der das in ein unsichtbares feld (hidden) einträgt.
    danach setzt javascript die selbe variable in flash2 auf true.
    flash 2 setzt dann seinen content in sein hidden feld.
    nachdem beide contents in den jeweiligen hidden felder sind wir das formular abgeschickt (form.submit();)

    edit:
    ja ich weis warum nicht nur 1 swf machen mit 2 textfelder, oder warum nicht gleich ein ganzes formual in flash machen ... sind alles berechtigkte fragen die leicht zu beantworten sind:
    also ich mit der entwicklung angefangen habe war es nicht vorgesehen 2 textfelder zu haben. das jetzt umzubauen würde zu viel zeit in anspruch nehmen als einfach zu sagen "IE kanns halt nicht!".

    Beitrag geändert: 19.11.2008 17:55:08 von beliar
  5. 1 Frage: wozu brauchst du mehr als 2k!! Zeichen?

    ist ja schon ein recht großer Text^^

    2 Frage: funktioniert der lange Text unter FF?

    wenn er unter FF funktioniert liegt es wohl am Internetexplorer. Dann solltest du es irgendwie anders zwischenspeichern...
    ansonsten müsste man halt den Fehler bei Flash finden...
  6. Hi,

    ohne zu wissen ob es funzt:

    Per AS den text in 2048 Zeilen lange Teile aufteilen, dann jeden
    Teil als eigene Varaiable übergeben (entsprechend die JS-Funktion
    anpassen) und dann in der JS-Funktion wieder zusammensetzen.

    Gruß
    Manni
  7. Autor dieses Themas

    b****r


    1 Frage: wozu brauchst du mehr als 2k!! Zeichen?

    ist ja schon ein recht großer Text^^

    2 Frage: funktioniert der lange Text unter FF?

    wenn er unter FF funktioniert liegt es wohl am Internetexplorer. Dann solltest du es irgendwie anders zwischenspeichern...
    ansonsten müsste man halt den Fehler bei Flash finden...

    zu 1: es für eine website als cms und da befinden sich in verschiedenen seite mehr als 2k zeichen

    zu 2: es funktioniert in FF und Safari und sonst wo, nur ned beim IE. wichtigeste wäre zu wissen ob es an flash player plugin liegt (beim FF und IE gleiche version, aber es sind ja verschiedene für IE und den rest (FF, Opera etc)) oder am IE selbst.


    Hi,

    ohne zu wissen ob es funzt:

    Per AS den text in 2048 Zeilen lange Teile aufteilen, dann jeden
    Teil als eigene Varaiable übergeben (entsprechend die JS-Funktion
    anpassen) und dann in der JS-Funktion wieder zusammensetzen.

    Gruß
    Manni


    daran hab ich auch schon gedacht, muss ja funktionieren da ich dann nur 2kb an text "auf einmal" übergeben, hab aber gehofft das vielleicht irgendwer weiß woran das problem liegen könnte
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!