markerAbfrage

  Kann mann irgendwie abfragen, ob ein bestimmter Marker im aktuellen oder auch anderen Film existiert
marker label




  markerAbfrage
>> Kann mann irgendwie abfragen, ob ein bestimmter Marker im
>> aktuellen oder auch anderen Film existiert.

>>
>im aktuellen Film ist's einfach...
>
>-- Willkommen bei Director --
>put label("michgibts")
>-- 2
>put label("michgibtsnicht")
>-- 0
>
>im anderen Film ... aehm, kompliziert. keine Idee.
>

Eine Idee haette ich schon, aber etwas kompliziert ist es wirklich.

Du muesstest den anderen Film in einem unsichtbaren MIAW oeffnen, pausieren, 
dann kannst du das Miaw mit tell untersuchen/ befragen und dann musst du es 
mit forget wieder loswerden, damit du ggf hinspringen kannst. Klingt kompliziert? 
Kommt noch besser: Wenn dieser andere Film einen handler 'on startMovie' hat, 
wird der beim oeffnen des Miaw ausgefuehrt. Nun stecken grade hier oft heftig 
viele aktionen und es kann leicht zu unerwuenschten Nebenwirkungen kommen. 
Da hilft nur eine globale Variable ganz oben im StartMovie handler, die 
dessen Ausfuehrung, wenn TRUE, abbricht.

In allen 'on startMovie' aller Filme, die fuer so eine Abfrage fit sein 
sollen, oben die folgenden Zeilen:

on startmovie
  -- sei passiv, wenn Flag TRUE
  global gPassivMode
  if gPassivMode then return 

  ...


und hier die Abfrage des marker:

on checkMarkerExists dMovieName, dMarker
  -- parameter pruefen
  if not stringP(dMovieName) then return #keinFilmBenannt
  if not stringP(dMarker) then return #keinMarkerBenannt

  -- startmovie blockieren
  global gPassivMode
  set gPassivMode = TRUE

  -- Film befragen
  set dWin = window(dMovieName)
  tell dWin 
    pause
    set result = label(dMarker)
  end tell

  -- fertig
  forget dWin
  set gPassivMode = FALSE

  return result
end
 

und im message fenster sieht das dann so aus:

-- Welcome to Director --

put checkmarkerExists()
-- #keinFilmBenannt

put checkmarkerExists("base23.dir")
-- #keinMarkerBenannt

put checkmarkerExists("base23.dir","gugelhupf")
-- 0
put checkmarkerExists("base23.dir","New Marker")
-- 5
 


Naja, soo kompliziert ist es dann doch wieder nicht. 


Home shock + cgi Bits 'n pieces Director Lingo Shocklets Contact










pageID=l_markerAbfrage