Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-10-2001, 17:12   #1 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Post JavaScript aus Flash aufrufen

Hab ihr euch schon immer gewünscht JavaScript "einfach" direkt aus Flash durchführen zu lassen
Ich glaub ich hab hier einen "relativ" guten Ansatz.

Die folgende Klasse "Window" ermöglicht:
Öffnen eine Fensters
öffnen eines Fenster in beliebiger Position
öffnen ein grösst möglichstes Fenster
alert Meldungen
Hintergrundfarbe wechseln usw.
Alles wird einfach direkt über die Class unterstützt ohne das man den geringsten Schimmer von AS oder JS haben muss

Außerdem ist ein "JS-Compiler" integriert. Ich weiß das ist das falsche Wort aber man kann einfach JS-Funktionen in Flash definieren und dann auch direkt ansprechen.

Ein BSP zum Anschauen

Die Fla und das Script zum Download findet ihr auf meiner Site (www.netTrek.de) im Download-Bereich

Viel Spaß damit
SABAN
ActionScript:
  1. //--------------------------------------------------------------
  2.  
  3. string.prototype.str_replace = function (nach, ersetzte) {
  4.     anzahl = nach.length;
  5.     dummy = ""
  6.     while (this.indexOf(nach)>=0) {
  7.         aktuell = this.indexOf(nach);
  8.         dummy += this.substr(0, aktuell)
  9.         if (aktuell >= 0) dummy += ersetzte
  10.         this = this.substr((aktuell+anzahl), this.length);
  11.     }
  12.     if (this.length >0) dummy += this
  13.     return dummy
  14. }
  15. function netTrek () {}
  16. window = new netTrek ()
  17. netTrek.prototype.alert = function (meldung){
  18.     var get_url_var = "javascript:alert(\""+meldung+"\")"
  19.     getURL (get_url_var);
  20. }
  21. netTrek.prototype.bgcolor = function(color) {
  22.     var get_url_var = "javascript:function bg_new(farbe) {document.bgColor=farbe}bg_new('"+color+"')"
  23.     getURL (get_url_var)
  24. }
  25. netTrek.prototype.js_compile = function (befehl){
  26.         var get_url_var = "javascript:"+befehl.str_replace("\"","'")
  27.         getURL (get_url_var);
  28. }
  29. netTrek.prototype.resize = function (breite,hoehe,fenster){
  30.     if (arguments.length < 3){
  31.         var get_url_var = "javascript:self.resizeTo("+breite+","+hoehe+")"
  32.         getURL (get_url_var);
  33.     }
  34.     else return fenster+".resizeTo("+breite+","+hoehe+")"
  35. }
  36. netTrek.prototype.para = function (resizable,scrollbars,menubar,toolbar,directories,location,status){
  37.     if (arguments.length != 7){
  38.         if(arguments[0] == "allYes"){
  39.             return " ,resizable=yes ,scrollbars=yes ,menubar=yes ,toolbar=yes ,directories=yes ,location=yes ,status=yes"
  40.         } else {
  41.             return " ,resizable=no ,scrollbars=no ,menubar=no ,toolbar=no ,directories=no ,location=no ,status=no"
  42.         }
  43.     }else{ return ",resizable="+resizable+",scrollbars="+scrollbars+",menubar="+menubar+",toolbar="+toolbar+",directories="+directories+",location="+location+",status="+status}
  44. }
  45. netTrek.prototype.pos = function (hori,vert,breite,hoehe){
  46.     if(!isNaN(hori+vert)){
  47.         var vert_pos = "var positiontop="+vert+";"
  48.         var hori_pos = "var positionleft="+hori+";"
  49.     }else{
  50.         var system = $version
  51.         system = system.toLowerCase()
  52.         var mac = system.indexOf("mac") != -1
  53.         hori = hori.toLowerCase()
  54.         vert = vert.toLowerCase()
  55.         var leiste = 56
  56.         if (mac){
  57.             if (vert == "top") var vert_pos = "var positiontop="+leiste+";"
  58.             else if (vert == "bottom") var vert_pos = "var positiontop=(screen.height-"+hoehe+");"
  59.             else var vert_pos = "var positiontop=0;"
  60.         }else{
  61.             if (vert == "top") var vert_pos = "var positiontop=0;"
  62.             else if (vert == "bottom") var vert_pos = "var positiontop=(screen.height-"+Number(hoehe+leiste)+");"
  63.             else var vert_pos = "var positiontop=0;"
  64.         }
  65.         if (vert == "middle") var vert_pos = "var positiontop=(screen.height-"+hoehe+")/2;"
  66.         if (hori == "center") var hori_pos = "var positionleft=(screen.width-"+breite+")/2;"
  67.         else if (hori == "right") var hori_pos = "var positionleft=(screen.width-"+Number(breite+5)+");"
  68.         else var hori_pos = "var positionleft=0;"
  69.     }
  70.     return hori_pos+vert_pos
  71. }
  72. netTrek.prototype.popup = function (pfad, fenstername, breite, hoehe, parameter) {
  73.     var get_url_var = "javascript:";
  74.     get_url_var += "var zielDoc='"+pfad+"' ;";
  75.     get_url_var += "var target='"+fenstername+"';";
  76.     get_url_var += "fensterParameter = '";
  77.     get_url_var += "width="+breite+" ,";
  78.     get_url_var += "height="+hoehe;
  79.     get_url_var += parameter;
  80.     get_url_var += "';"
  81.     get_url_var += fenstername+"=window.open(zielDoc,target,fensterParameter);"+fenstername+".focus();";
  82.     getURL (get_url_var);
  83. }
  84. netTrek.prototype.popup_place = function (pfad, fenstername, breite, hoehe,links,rechts, parameter) {
  85.     var get_url_var = "javascript:";
  86.     get_url_var += "var zielDoc='"+pfad+"' ;";
  87.     if(pfad.indexOf("http:")==-1){
  88.         get_url_var += "var target='"+fenstername+"';";
  89.         get_url_var += "fensterParameter = '";
  90.            get_url_var += "width="+breite+" ,";
  91.         get_url_var += "height="+hoehe;
  92.         get_url_var += parameter;
  93.         get_url_var += "';"
  94.         get_url_var += window.pos(links,rechts,breite,hoehe)
  95.         get_url_var += fenstername+"=window.open(zielDoc,target,fensterParameter);"+fenstername+".moveTo(positionleft,positiontop);"+fenstername+".focus();";
  96.         getURL (get_url_var);
  97.     }else{
  98.         window.alert("Hallo")
  99.     }   
  100. }
  101. netTrek.prototype.pop_avail_size = function (pfad, fenstername, parameter) {
  102.     var get_url_var = "javascript:";
  103.     get_url_var += "var zielDoc='"+pfad+"' ;";
  104.     if(pfad.indexOf("http:")==-1){
  105.         get_url_var += "var target='"+fenstername+"';";
  106.         get_url_var += "fensterParameter = '";
  107.            get_url_var += "width=1024 ,";
  108.         get_url_var += "height=712";
  109.         get_url_var += parameter;
  110.         get_url_var += "';"
  111.         var system = $version
  112.         system = system.toLowerCase()
  113.         var mac = system.indexOf("mac") != -1
  114.         var leiste = 56
  115.         var nc = 84
  116.         if (mac){
  117.             var vert_pos = "var positiontop="+leiste+";"
  118.         }else{
  119.             var vert_pos = "var positiontop=0;"
  120.         }
  121.         var hori_pos = "var positionleft=0;"
  122.         get_url_var += hori_pos + vert_pos
  123.         get_url_var += fenstername+"=window.open(zielDoc,target,fensterParameter);"+fenstername+".moveTo(positionleft,positiontop);"+fenstername+".focus();";
  124.         get_url_var += fenstername+".resizeTo(screen.availWidth,screen.availHeight);"
  125.         getURL (get_url_var);
  126.     }else{
  127.         window.alert("Hallo")
  128.     }   
  129. }
  130. /*
  131. aufruf der Methoden
  132. öffnet Fenster
  133. window.popup (pfad, fenstername, breite, hoehe, parameter)
  134. pfad = URL (absolut || relativ) zu der Datei die geöffnet werden soll
  135. fenstername == JavaScript Name den das Fenster erhalten soll (neue namen == neue Fenster)
  136. breite = breite des zu öffnenden Fensters
  137. hoehe = höhe des zu öffnenden Fensters
  138. parameter = wie soll das Fenster geöffnet werden - wird über methode window.para() definiert (folgende Parameter sind möglich)
  139.     - window.para() wird ein PopUp Fenster geöffnet ohne Adressleiste und Co
  140.     - window.para("allYes") normales Browserfenster (funktioniert derzeit nur unter IE (für jede Hilfe Dankbar) 
  141.     - window.para (resizable,scrollbars,menubar,toolbar,directories,location,status) : freie definition der Fensterform details findet man unter [url]http://www.teamone.de/selfhtml/tecb.htm#a35[/url] im Bereich OPEN
  142. öffnet Fenster und positioniert es
  143. window.popup_place (pfad, fenstername, breite, hoehe,links,rechts, parameter)
  144. pfad, fenstername, breite, hoehe, parameter : wie bei "window.popup" ES FUNKTIONIEREN JEDOCH NUR relative URL
  145. links,rechts : Positioniert Fenster an gewünschte Position möglichkeiten
  146.     links = Integer, left, center, right
  147.     rechts = Integer, top, middle, bottom
  148. öffne Fenster mit grösst möglicher Breite und Höhe
  149. pop_avail_size (pfad, fenstername, parameter)
  150. pfad, fenstername, parameter = wie bei window.popup_place
  151. Grösse ändern vom Fenster in dem der Flash-Film läuft
  152. window.resize = function (neue-breite,neue-hoehe)
  153. JavaScript Alert mit Flash
  154. window.alert (meldung)
  155. Hintergrundfarbe des Fenster ändern
  156. window.bgcolor(color)
  157. color : Farbwert als Hex oder wie in HTML gewohnt als Farbname (black, white, yello)
  158. JavaScript Funktionen & Anweisungen direkt ausführen lassen
  159. window.js_compile(funktionen_befehle)
  160. funktionen_befehle : testet selbst wo grenzen sind
  161. Wenn ihr das Script erweitert oder verbessert würde ich mich sehr über eine Benachrichtigung freuen
  162. SABAN alias netTrek - [email]us@netTrek.de[/email]
  163. */
  164. // Beispiele der Anwendung
  165. //window.popup("http://buchtipp.netTrek.de", "neu", 800, 600, window.para("yes","no","yes","no","yes","no","yes"))
  166. //window.popup("http://buchtipp.netTrek.de", "neu", 800, 600, window.para("allYes"))
  167. //window.popup("http://buchtipp.netTrek.de", "neu", 800, 600, window.para())
  168. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"egal","egal", window.para())
  169. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"left","top", window.para())
  170. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"left","middle", window.para())
  171. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"left","bottom", window.para())
  172. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"center","top", window.para())
  173. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"center","middle", window.para())
  174. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"center","bottom", window.para())
  175. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"right","top", window.para())
  176. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"right","middle", window.para())
  177. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"right","bottom", window.para())
  178. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,50,200, window.para())
  179. //window.alert("Hallo")
  180. //window.popup_place("lineare_Bewegung.html", "neu", 800, 600,"center","middle", window.para())
  181. //window.resize(400,400)
  182. //window.pop_avail_size("lineare_Bewegung.html", "neu", window.para("yes","no","yes","no","yes","no","yes"))
  183. //window.pop_avail_size("lineare_Bewegung.html", "neu", window.para("allYes"))
  184. //window.pop_avail_size("lineare_Bewegung.html", "neu", window.para())
  185. //window.bgcolor("#3366CC");
  186.  
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:33   #2 (permalink)
nur noch selten hier
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 177
genial! ist wohl ziemlich aufwendig gewesen. danke

dave
__________________
www.d-art.ch
dave ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:39   #3 (permalink)
hOk
Neuer User
 
Benutzerbild von hOk
 
Registriert seit: Jun 2001
Ort: berlin
Beiträge: 829
Thumbs up

netTrek, du alter Hardcore-Progger,
kannst Du jetzt auch Gedanken lesen,
genau das hab ich mir gewünscht.
netten Gruß, hOk
__________________
gobogo
hOk ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:42   #4 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
Thumbs up

aufwendig? und ob! aber der aufwand hat sich gelohnt. spitzenklasse, netTrek! und das beispiel dazu ist auch erstklassig. alles, was man braucht, sogar select-felder.

und der "compiler" erstmal!

respekt, herr Ünlü!

grüße, dassoud
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:46   #5 (permalink)
auferstanden
 
Benutzerbild von Johannes P.
 
Registriert seit: Sep 2001
Ort: München
Beiträge: 5.247
Respekt und Danke! Werde das bestimmt mal nutzen können
__________________

Gruß
Johannes
¬ Homepage
¬ Tutorials und FAQs Forum
¬ Suchen und Finden
Johannes P. ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:48   #6 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
@dave
3 Tage arbeit... zu verdanke habe ich das dem "derRob". Der ist ein "spitzen" Designer und brauchte ne leichte möglichkeit für PopUPs und das ist dabei rausgekommen. Konnte ienfach nicht mehr aufhören

@hOk
Freut mich für dich... Hau rein und wenn du Verbesserungsvorschläge hast immer her damit

@dassoud
hör auf ich werde gleich rot
DANKE

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 21-10-2001, 17:49   #7 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
@Johannes P.
BITTE

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 21-10-2001, 18:02   #8 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
ist jetzt nicht wahr saban, oder? ... also manchmal komm ich mir ja schon vor wie so'n glühwürmchen zwischen halogenlampen ... und du powerst gerade wohl bei so einer million watt rum, oder?

im ernst, das ist wirklich gut

gruß
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 21-10-2001, 18:06   #9 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
@rena
Das habt ihr jetzt davon - Ich bin rot geworden
DANKE

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 21-10-2001, 21:59   #10 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Beiträge: 368
oh ja, ist er nicht göttlich? da erwähnte man nur mal kurz nebenbei, das es doch nciht schlecht wäre, gäbe es da eine art irgendwas, bei der ein dussliger grafiker mal seine aufpoppenden filmchen mit steuern könnte. und schon ist der herr drei tage etwas abwesend, was heist fragen egal welcher art werden prinzipiell mit JA beantwortet, oder enden mit:
}
und man wird masslos in den himmel gehoben, aber dann war es fertig
da kann man schon ganz schön stolz sein dabei gewesen zu sein...

liebe grüße derrob
derrob ist offline   Mit Zitat antworten
Alt 21-10-2001, 22:23   #11 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
i see .. inspired by derrob

Zitat:
Geschrieben von derrob
oh ja, ist er nicht göttlich? ...
<scherz>da hängt man hier fast täglich rum, postet, macht und tut und was ist? hat mich jemals jemand so genannt? nein! *schmoll* </scherz>

*hehe* ich gönn's dir von herzen saban

gruß
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 21-10-2001, 22:36   #12 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
@derrob
JA

@rena
Wir lieben dich doch auch Nur vergöttern tun wir dich NOCH nicht *fg

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 21-10-2001, 22:51   #13 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
na das ist doch schon mal was . werd mich also weiter anstrengen ... eines tages dann
grüßle
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 21-10-2001, 23:48   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
von mir auch ein dickes DANKE, ehct heftig was man alles aus flash rausholen kann mit nem bißchen fleiß-also MEHR


deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 21-10-2001, 23:54   #15 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
JEP

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek 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 15:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele