Zurück   Flashforum > Software > Autorensysteme

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2005, 18:30   #1 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Lingo/Javascript makescriptedsprite - Flashmember Problem (variablescope)

Hallo zusammen

Ich habe gerade ausgesprochen interessantes Probleme mit Flashmembern und makescriptedsprite.

Ich habe einen Flashmember der eine (AS)Funktion und eine (AS)Variable besitzt.
Packe ich diesen Flashmember "manuel" auf die Bühne kann ich seine Variable und seine Methode wunderbar aufrufen:
Code:
var schiff = sprite(1); trace(schiff.flashMethode());
Packe ich den selben member via makescriptedsprite auf die Bühne ist nichts mehr zu erreichen:

Code:
schiff = channel(1).makescriptedsprite(member("schiffMember")); trace(schiff.flashMethode());
(Handler not defined). Versuche ich eine beliebige Flashvariable zu erreichen erhalte ich als put immer "[function beliebigeVariable]" - die Variable muss hierfür noch nicht mal existieren. Wie gesagt, liegt das Ganze manuel plaziert auf der Bühne läufts wunderbar.

Hier muss doch ein Weg existieren die Flashmethoden auch dann zu erreichen wenn ich das sprite mit makescriptedsprite erstelle? Was habe ich hier nicht begriffen?

2. Problem - VariableScope mit JS in Benutzung der scriptinstancelist:
Wenn ich zwei Sprites auf die Bühne setze und ein BehaviourScript manuel zuweise funktioniert dieses Behaviour wie erwartet:
Code:
function beginSprite(){
  this.speed = random(5);
  trace("Begun"+this.speed);
}

function enterFrame(){
  trace(this.speed);
}
Jedes Sprite hat seinen eigenen Speed.
Weise ich jedoch dieses Verhalten über die scriptinstancelist zu statt es manuell zuzuordnen besitzen am Ende alle Sprites den gleichen "speed". Obwohl es doch alles korrekt zugewiesen ist.
Code:
function startMovie(){
  sprite(1).scriptInstanceList = list(new script("speed"));
  sprite(1).beginSprite();
  sprite(2).scriptInstanceList = list(new script("speed"));
  sprite(2).beginSprite();
}
Wo liegt hier mein Denkfehler.

Ich bin äusserst verwirrt...

Vielen Dank für jede Hilfe und viele Grüsse,
Alex
__________________
---::::: AVisioN :::::---
AVisioN ist offline   Mit Zitat antworten
Alt 05-10-2005, 23:28   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Bei der ersten Frage dürfte es sich um ein Timingproblem handeln.

Geht nicht
Code:
channel(5).makeScriptedSprite(member("flash"))
put sprite(5).meinevariable -- oder auch trace, in der Zeile direkt danach
So wie es aussieht ist der Sprite zu diesem Zeitpunkt noch nicht existent und es kommt zur besagten Fehlermeldung wobei er bei mir die property anmahnt.

Geht
Code:
channel(5).makeScriptedSprite(member("flash"))
-- einige Frames später
put sprite(5).meinevariable 
-- Ausgabe "hallo welt"
Mit "paar Frames später" ist natürlich kein empfehlenswerter Lösungsvorschlag gemeint, nur eine Verdeutlichung des Prinzips.

Zur zweiten Frage kann ich nichts sagen da Javascript in Director bisher noch nicht so mein Ding ist (-> Zeit )

Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box

Geändert von rena (05-10-2005 um 23:31 Uhr)
rena ist offline   Mit Zitat antworten
Alt 06-10-2005, 12:45   #3 (permalink)
Custom Title
 
Registriert seit: Aug 2001
Beiträge: 467
Ja Du hast recht - Problem 1 ist mit _movie.updateStage() behoben.

Das zweite Problem ist mir ein Rätsel. Ich habe gesucht und gesucht und habe die Frage auch schon gefunden - nur die Antwort nicht..

Das Problem ist äusserst ärgerlich wenn man z.B. ein Spiel plant.
Ich hab mich auch in die Artikel von MM eingearbeitet (über JS) und mein Ansatz wird als richtig gesehen - er wird aber auch nur mit manuel plazierten Sprites durchexerziert.

Naja Danke Dir auf jeden Fall recht herzlich

Grüsse nach Schwaben,
Alex
__________________
---::::: AVisioN :::::---
AVisioN 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 aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele