Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-02-2006, 12:41   #1 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
flash->javascript?

hallo ich möchte den browser bei bestimmten aktionen im flash rütteln!

ich hab ein javascript, dass auch funktioniert wenn ich es vom HTML aus aufrufen zum test (z.B. onload)

nun testhalber ab ich einen dummy-button um flash ums mal zu testen, nur leider ohne erfolg. ich hab das javascript schon jene mal umgeschrieben aber es geht immer noch nicht vom flash aus... nur mit z.B. onload im HTML!

kann mir jemand weiterhelfen?

hier das javascript:
HTML-Code:
<script language="javascript"> 
   <!-- 
  
   
function shake_xy() {
 if (self.moveBy) {
   for (i = 5; i > 0; i--) {
     for (j = 10; j > 0; j--) {
        self.moveBy(0,i);
        self.moveBy(i,0);
        self.moveBy(0,-i);
        self.moveBy(-i,0);
     }
   }
 }
}

   
//--> 
</script> 
hier der flashaufruf:
Code:
on (press) {
	getURL("javascript:shake_xy();");
}
saftbraten ist offline   Mit Zitat antworten
Alt 03-02-2006, 15:50   #2 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
muss ich evt bei den grundeinstellunge auf actionscript 1 stellen?
ich exportiere es als flash8 mit AS2...

der AS aufruf stimmt doch, den hab ich immer so benutzt:
Code:
getURL("javascript:shake_xy();");
saftbraten ist offline   Mit Zitat antworten
Alt 03-02-2006, 19:04   #3 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
ich poste nun mal meine files, vielleicht kann mir dann jemand helfen?
wie gesagt das javascript funktioniert mit onload im body, testet es mit refresh im browser!

danke für hilfe
Angehängte Dateien
Dateityp: zip browser_shake.zip (6,8 KB, 14x aufgerufen)
saftbraten ist offline   Mit Zitat antworten
Alt 03-02-2006, 19:17   #4 (permalink)
FF User
 
Registriert seit: Jul 2002
Beiträge: 135
Hab's getestet:

Du veröffentlichst für den 8er-Player, bindest die swf im html aber als 7er-swf (#version=7,0,19,0) ein. Wenn du bei den Einstellungen für Veröffentlichen Flash7 angibst funktionierts. Alternativ eben im html als Flash8-swf einbinden.
Smocoe ist offline   Mit Zitat antworten
Alt 03-02-2006, 19:54   #5 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
hey danke vielmals... wtf und das liegt nur an dem? ich hätte noch stunden probiert, darauf wäre ich nie gekommen
saftbraten ist offline   Mit Zitat antworten
Alt 03-02-2006, 20:23   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Ort: undefined
Beiträge: 70
Schau dir mal die interne Klasse ExternalInterface im Package flash.external an.
_sevenDust ist offline   Mit Zitat antworten
Alt 03-02-2006, 21:30   #7 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
wow das mit dem ExternalInterface sieht interessant aus..
ich bin nun mal am ausprobieren, geht aber noch nicht!

im flash verwende ich nun das script um das javascript aufzurufen:
Code:
on (press) {
	ExternalInterface.call("shake_xy();");
}
geht nicht
diese variante auch nicht:
Code:
on (press) {
	ExternalInterface.call("shake_xy");
}
so wie ich das in der flash-hilfe gelesen hab brauchts den "javascript:" aufruf gar nicht mehr...oder?

wie funktioniert das nun in Flash8 mit AS2?
saftbraten ist offline   Mit Zitat antworten
Alt 03-02-2006, 21:32   #8 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
AN Smocoe: es klappt übrigens mit flash7 exportieren und einbinden
saftbraten ist offline   Mit Zitat antworten
Alt 04-02-2006, 14:34   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Ort: undefined
Beiträge: 70
du musst die Klasse importieren
PHP-Code:
import flash.external.ExternalInterface
die Verfügbarkeit is AS1.
Eine AS2 Variante kann ich jetzt nicht so aus der Hüfte schießen, wenn ich nicht weiß in welchem Kontext die Verwendung steht.
_sevenDust ist offline   Mit Zitat antworten
Alt 04-02-2006, 14:40   #10 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Ort: undefined
Beiträge: 70
Bis auf einen alert und hier deine shake Funktion, wird meistens ein Rückgabewert von js abgefangen ( ein return in der js-Funktion)

Du darfst dabei nur den Funktionsnamen übergeben. Also call("shake_xy") statt call("shake_xy();")



PHP-Code:
import flash.external.*;

//...
on (press) {
    
ExternalInterface.call("shake_xy");

_sevenDust ist offline   Mit Zitat antworten
Alt 04-02-2006, 16:07   #11 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
thnx sevenDust

ich habs soeben mit deinem letzten posting-tip versucht, und als flash8 AS2 exportiert! geht immer nocht nicht?!
in der flash hilfe hab ich nun das mit der klasse importieren auch gefunden.. nur wenn ich das so mache, wie dort beschrieben und so wie du mir auch angegeben hast:
Code:
import flash.external.*;
auf mein simples button-script schreibe... bekommen ich einen syntax-error?

ich hab nun auch mal einen anderen test gemacht, da das rütteln schlussendlich auf der zeitliste aufgerufen werden soll (zu ner animation)!

einfach so auf ein keyframe (flash8 AS2):
Code:
import flash.external.*;
ExternalInterface.call("shake_xy");
geht auch nicht?!! was soll eigentlich das .*; beim klassen import genau bedeuten?

danke für deine hilfe
saftbraten ist offline   Mit Zitat antworten
Alt 05-02-2006, 17:07   #12 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
bin immer noch an dem externalInterface testen, und bringe es nicht zum laufen!

ich hab diesen thread gefunden:
ExternalInterface

und danwips test kurz nachgebaut, und es auch von meinem testserver aus
getestet!

bei mir geht gar nix... nicht mal nen alert!

arbeite übrigens mit OSX und Flash8pro, da scheinbar bei WIN ein alert kommt wenn man es lokal testet?!

wie bring ich den "externalInterface.call" zum laufen?
saftbraten ist offline   Mit Zitat antworten
Alt 05-02-2006, 17:50   #13 (permalink)
FF User
 
Registriert seit: Jul 2002
Beiträge: 135
okay, habe auch mal mein Glück mit dem ExternalInterface probiert:

Lief bei mir auch nicht, bis ich in der html-Datei folgendes im embed-Tag dazugefügt habe:
<embed src="test.swf" allowScriptAccess="always" ...

Probier das mal, bei mir hat das dann funktioniert.

anstatt
import flash.external.*;
ExternalInterface.call...

kannst du auch gleich

flash.external.ExternalInterface.call...

schreiben.

Das * beim Klassenimport bedeutet, dass alle Klassen aus dem Package (flash und external sind z.B. packages) verfügbar sind. Das ist dann nützlich, wenn du in einem Script mehrere Klassen oder eine Klasse mehrmals aus dem selben Package verwendest. Spart Schreibarbeit.

Hoffe es klappt jetzt
Smocoe ist offline   Mit Zitat antworten
Alt 05-02-2006, 17:55   #14 (permalink)
Neuer User
 
Benutzerbild von saftbraten
 
Registriert seit: Nov 2004
Beiträge: 148
ja das allowScriptAccess="always" hab ich auch schon gefunden... geht immer noch nicht bei mir...

kannst du evt. deine test-files posten die gehen?

danke dir
saftbraten ist offline   Mit Zitat antworten
Alt 05-02-2006, 18:33   #15 (permalink)
FF User
 
Registriert seit: Jul 2002
Beiträge: 135
hier die files. ich habe dabei mit deinen weitergearbeitet.
Angehängte Dateien
Dateityp: zip browser_shake2.zip (6,0 KB, 42x aufgerufen)
Smocoe 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 10:18 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele