Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-06-2008, 15:26   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 167
regExp-Implementation für AS 1

hi @ all,

ich hab da so ein problem
und wäre extrem dankbar, wenn mir jemand helfen könnte.

ich hab mir von http://www.jurjans.lv/flash/RegExp.html
eine regex-implementation besorgt, die ich gleich unten reinposte.

wenn ich für flash6/AS1 kompiliere, funzt das soweit.
wenn ich aber die einstellung flash7/AS1 oder flash8/AS1 nehme, klappt es nicht mehr.

wie gesagt, ich wäre extrem dankbar, wenn hier im forum einer eine idee hätte, woran das liegen kann.



link zum zip mit der regExp.as drin:
http://www.jurjans.lv/flash/RegExp.zip
(is leider zu groß, um es hier direkt reinzuposten)



mein Code:

PHP-Code:
#include "RegExp.as"

word "test";
re = new RegExp(word"gim");
res "bla";


if(
re.test(res) == false){
    
trace(word+" in "+res+" = false");
}
else{
    
trace(word+" in "+res+" = true");

wie gesagt, wenn ich die einstellung flash6/AS1 nehme gehts.
bei flash7/AS1 oder flash8/AS1 funzt es nicht mehr.


wenn keiner ne idee hat, kennt jemand vielleicht eine andere vernünftige implementation für regex für AS1?
__________________
miller

Geändert von miller (20-06-2008 um 15:28 Uhr)
miller ist offline   Mit Zitat antworten
Alt 20-06-2008, 16:08   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Auf seiner Seite ist eine Klasse für AS2 verlinkt, die kannst du nach Flash 7+ kompilieren. http://www.jurjans.lv/flash/RegExp.html
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 23-06-2008, 07:40   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 167
Zitat:
Zitat von Janoscharlipp Beitrag anzeigen
Auf seiner Seite ist eine Klasse für AS2 verlinkt, die kannst du nach Flash 7+ kompilieren. http://www.jurjans.lv/flash/RegExp.html

hi jonoscharlipp,

danke für die schnelle antwort.
den link habe ich gesehen und ausprobiert.
leider ist die applikation, mit der ich es zu tun habe, nicht actionscript2-kompatibel.
ich brauche also eine lösung für as1.
wenn du da vielleicht doch noch eine idee hättest, wäre ich sehr dankbar.

viele grüße

uli
__________________
miller
miller ist offline   Mit Zitat antworten
Alt 23-06-2008, 12:10   #4 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Eigentlich sind AS1 und AS2 voll kompatibel zueinander, inwiefern gibt es da Probleme in deiner Anwendung?

Die einzige mir bekannte Änderung zu Flash Player 7 ist, dass ActionScript case sensitiv wurde, ich denke danach solltest du in der AS1 Version Ausschau halten. Z.B. habe ich gesehen, dass dort "Nan" statt "NaN" verwendet wird, das kann beispielsweise nicht funktionieren.

Ansonsten ist es ein leichtes, eine AS2 Klasse in AS1 zu schreiben, guck dir einfach mal an, wie man Klassen in AS1 formuliert (prototype, __proto__), dann kannst du einfach den Inhalt der AS2-Methoden in ein AS1 Gerüst packen. (und mit ner RegExp Ersetzung noch alle Typ-Angaben eliminieren)
Danach sollte der Code auf jeden Fall laufen.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 23-06-2008, 13:48   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 167
Zitat:
Zitat von Janoscharlipp Beitrag anzeigen
Eigentlich sind AS1 und AS2 voll kompatibel zueinander, inwiefern gibt es da Probleme in deiner Anwendung?

Die einzige mir bekannte Änderung zu Flash Player 7 ist, dass ActionScript case sensitiv wurde, ich denke danach solltest du in der AS1 Version Ausschau halten. Z.B. habe ich gesehen, dass dort "Nan" statt "NaN" verwendet wird, das kann beispielsweise nicht funktionieren.

Ansonsten ist es ein leichtes, eine AS2 Klasse in AS1 zu schreiben, guck dir einfach mal an, wie man Klassen in AS1 formuliert (prototype, __proto__), dann kannst du einfach den Inhalt der AS2-Methoden in ein AS1 Gerüst packen. (und mit ner RegExp Ersetzung noch alle Typ-Angaben eliminieren)
Danach sollte der Code auf jeden Fall laufen.

vielen dank für die tips!
werde ich mir anschauen.
ich hab halt zusätzlich noch ein paar probleme mit externen as, die leider auch nicht so einfach laufen.
reicht es da, wenn man eine klassendeklaration in den as vornimmt?
oder muß man as2-code schreiben?

greez

uli
__________________
miller
miller ist offline   Mit Zitat antworten
Alt 23-06-2008, 17:03   #6 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Zitat:
Zitat von miller Beitrag anzeigen
reicht es da, wenn man eine klassendeklaration in den as vornimmt?
oder muß man as2-code schreiben?
Verstehe nicht, was du meinst? Wichtig ist, dass du AS2-Klassen-Dateien nicht per #include, sondern per import verwendest.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 24-06-2008, 10:35   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 167
Lösung des Problems

ich hab das problem gelöst.
danke auch für die hilfe, janoscharlipp


zunächst muß man man alle isNan durch isNaN ersetzen.

dann schreibt man in die erste zeile des scripts:


PHP-Code:
var RegExp = new Object();

RegExp = function() {
    
trace("****, frau schmitt");
    if (
arguments[0] == null) return null;
    
this.const = "RegExp";
    
this.compile(arguments[0], arguments[1], arguments[2]);

anstelle von

PHP-Code:
Object.RegExp = function() {
    if (
arguments[0] == null) return null;
    
this.const = "RegExp";
    
this.compile(arguments[0], arguments[1], arguments[2]);


dann funzt es auch zb. mit der Einstellung

Flash8/as1

greez & danke

__________________
miller
miller ist offline   Mit Zitat antworten
Alt 24-06-2008, 14:05   #8 (permalink)
Neuer User
 
Registriert seit: Feb 2002
Beiträge: 167
auch actionscript2-kompatibel

wenn man die funktion invStr umschreibt,
dann kriegt man das ganze as1-script auch as2-kompatibel:

PHP-Code:
function invStr(sVal){
        var 
sVal;
        var 
length(s);
        var 
j;
        var 
c;
        var 
"";
        for (var 
1i<255i++) {
            
chr(i);
            
0;
            while (
j<=&& substring(s1+j++, 1) != c) {
            }
            if (
j>l) {
                
+= c;
            }
        }
        return 
s;

weiter unten muß dann der invStr-Aufruf noch ersetzt werden

blabla.invStr wird zu invStr("blabla")


damit reicht die ganze regExp.as für as1 und as2 von flashplayer6-9.



greez

uli
__________________
miller
miller 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:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele