Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-12-2005, 17:03   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 8
ActionScript-Funktionen aus Javascript aufrufen

Man kann ja von JavaScript aus leider nicht direkt ActionScript-Funktionen aufrufen, aber ein kleiner Trick hilft, bestimmte Aktionen in Flash aus JavaScript aus zu triggern:

PHP-Code:
var trigger1 = function(propoldValnewValparam)   
{   
  
trace('trigger! do something!');
}   
_root.watch('trigger1'trigger1false); 
Code:
obj = document.embeds ? document.embeds['myFlash'] : document.getElementById('myFlash');
obj.SetVariable('trigger1', Math.random());
Hope it helps somebody
mcbyte ist offline   Mit Zitat antworten
Alt 08-12-2005, 17:14   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Ja, das ist schön.
Du könntest auch den Funktionsnamen in die Variable schreiben, dann hast du schon fast einen echten Funktionsaufruf. Fehlen noch Parameter, und der Rückgabewert
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 08-12-2005, 17:18   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 8
Für verschiedene Funktionen kann man verschiedene Trigger machen, und Parameter kann man theoretisch über den Parameterwert übergeben.
Also z.b.:

obj.SetVariable('trigger1', param1 + "\x01" + param2 + "\x01" + param3);

Und dann:

var trigger1 = function(prop, oldVal, newVal, param)
{
var params = newVal.split('\x01');
trace('trigger! do something! first param = ' + params[0] + ' second param = ' + params[1]);
}

\x01 ist hier als Trennzeichen verwendet worden.

Rückgabewerte sind natürlich schwieriger, da muss man schon mit einem Callback arbeiten, also aus der ActionScript funktion via getURL wieder JavaScript aufrufen
mcbyte ist offline   Mit Zitat antworten
Alt 13-02-2006, 13:46   #4 (permalink)
Linksaußen
 
Benutzerbild von Fralle
 
Registriert seit: Jun 2003
Ort: Essen
Beiträge: 552
sehr schön, dieser Trick! Ich benutze ihn jetzt auch. Nach einigem Hin und Her funktioniert's jetzt so wie ich will.

Eine Sache muss man beachten:

verändert man Flashvariablen per JavaScript z.B. so:
PHP-Code:
SetVariable("myVar"false); 
muss man darauf achten, daß dieses false als String übergeben wird. Dazu kommt noch, daß daraus "False" gemacht wird (Großbuchstabe am Wortanfang)

Auch wenn ich:
PHP-Code:
SetVariable("myVar"7); 
benutze, ist "myVar" keine Number sondern wird ein String.

Also werden die vars bei Modifikation mit JS anscheinend immer in Strings gewandelt. Darauf muss man dann achten!
__________________
Der Ball ist rund

Geändert von Fralle (13-02-2006 um 16:29 Uhr)
Fralle 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 05:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele