Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-12-2004, 16:48   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 80
Dynamisches Textfeld und per "GET" Variable übergebene Umlaute

Hallo,

Ich habe bei der Einbindung meines Flash-Films einen String als GET-Variable übergeben. (test.swf?myText=na%20ich%20wei%df%20nicht) Der String ist URL-encoded.

Wenn ich den Text nun in einem dynamischen Textfeld darstellen will, sehe ich statt dem ß nur einen Kasten.

System.useCodePage = true bringt in dem Fall nichts. Auch ein "unescape" nicht, denn Flash unescaped den Text schon von selbst.

Weiß jemand eine Lösung?
Q-Man ist offline   Mit Zitat antworten
Alt 16-12-2004, 17:16   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 34
Hallo,
hast Du den die Sonderzeichen im Font auch mit inkludiert?

Versuche doch mal diesen String:
test.swf?myText=na+ich+wei%C3%9F+nicht

und im Flash:
System.useCodepage = true;

Grüße
Hans

Geändert von schmalhans (16-12-2004 um 17:28 Uhr)
schmalhans ist offline   Mit Zitat antworten
Alt 16-12-2004, 17:20   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Ort: Hamburg
Beiträge: 99
oh, das problem hatte ich auch mal und ich habe den eindruck, dass das ein bug von flash ist, auch wenn ich sowas nicht gerne sage :-/ auf jeden fall konnte ich es partout nicht lösen mit der zeichenkodierung. und falls niemand anderes was weiß, dann kodiere den string vorher einfach mittels base64, dann hast du keine sonderzeichen mit drin.

anbei noch eine klasse zum dekodieren in flash:

ActionScript:
  1. class Base64
  2. {
  3.  
  4.     private static var base64s : String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  5.  
  6.  
  7.     public static function encode( str : String ) : String
  8.     {
  9.         var bits, dual, i : Number = 0, encOut = '';
  10.         while ( str.length >= i + 3 )
  11.         {
  12.           bits = ( str.charCodeAt( i++ ) & 0xff ) << 16 | ( str.charCodeAt( i++ ) & 0xff ) << 8 | str.charCodeAt( i++ ) & 0xff;
  13.           encOut += base64s.charAt( ( bits & 0x00fc0000 ) >> 18 ) + base64s.charAt( ( bits & 0x0003f000 ) >> 12 ) + base64s.charAt( ( bits & 0x00000fc0 ) >> 6 ) + base64s.charAt( ( bits & 0x0000003f ) );
  14.         }
  15.    
  16.         if ( str.length - i > 0 && str.length - i < 3 )
  17.         {
  18.             dual = Boolean( str.length - i - 1 );
  19.             bits = ( ( str.charCodeAt( i++ ) & 0xff ) << 16 ) | ( dual ? ( str.charCodeAt( i ) & 0xff ) << 8 : 0 );
  20.             encOut += base64s.charAt( ( bits & 0x00fc0000 ) >> 18 ) + base64s.charAt( ( bits & 0x0003f000 ) >> 12 ) + ( dual ? base64s.charAt( ( bits & 0x00000fc0 ) >> 6 ) : '=' ) + '=';
  21.         }
  22.        
  23.         return encOut;
  24.     }
  25.  
  26.  
  27.     public static function decode( str : String ) : String
  28.     {
  29.         var bits, decOut = '', i : Number = 0;
  30.         for ( i = 0; i < str.length; i += 4 )
  31.         {
  32.             bits = ( base64s.indexOf( str.charAt( i ) ) & 0xff ) << 18 | ( base64s.indexOf( str.charAt( i+1 ) ) & 0xff ) << 12 | ( base64s.indexOf( str.charAt( i+2 ) ) & 0xff ) << 6 | base64s.indexOf( str.charAt( i + 3 ) ) & 0xff;
  33.             decOut += String.fromCharCode( ( bits & 0xff0000 ) >> 16, ( bits & 0xff00 ) >> 8, bits & 0xff );
  34.         }
  35.    
  36.         if ( str.charCodeAt( i - 2 ) == 61 )
  37.             return decOut.substring( 0, decOut.length - 2 );
  38.      else if ( str.charCodeAt( i - 1 ) == 61 )
  39.             return decOut.substring( 0, decOut.length - 1 );
  40.         else
  41.             return decOut.substring( 0, decOut.length - 2 );
  42.     }
  43. }
nesium ist offline   Mit Zitat antworten
Alt 16-12-2004, 21:47   #4 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Zitat:
Zitat von Q-Man
Hallo,

Ich habe bei der Einbindung meines Flash-Films einen String als GET-Variable übergeben. (test.swf?myText=na%20ich%20wei%df%20nicht) Der String ist URL-encoded.

Wenn ich den Text nun in einem dynamischen Textfeld darstellen will, sehe ich statt dem ß nur einen Kasten.

System.useCodePage = true bringt in dem Fall nichts. Auch ein "unescape" nicht, denn Flash unescaped den Text schon von selbst.

Weiß jemand eine Lösung?

Machst du das dynamisch mit PHP oder so?
jeypack 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