Aerosoft official retail partner for Microsoft Flight Simulator !! 
Click here for more information

Jump to content

Archived

This topic is now archived and is closed to further replies.

Othello

zeitverzögerter Aufruf einer Funktion

Recommended Posts

Eine Frage in die Runde, gibt es in FlyWithLua die Möglichkeit, eine Funktion nach einem Delay genau nur einmal aufzurufen?

 

Also so etwas wie:  call_once_after(functionname, 3) -- delay in Sekunden als Argument

 

Gruß

Othello

 

 

 

EDIT:

 

oder so etwas wie unlist()

 

Meine Idee:

 

local handle = -1

 

function myfunction()
  ...

  unlist(handle)
end

 

handle = do_sometimes(myfunction)

Share this post


Link to post
Share on other sites

Edit geht leider nicht mehr.

 

Das handle könnte auch weggelassen werden:

 

do_sometimes(myfunction)

unregister(myfunction)

 

Share this post


Link to post
Share on other sites

Hinter do_sometimes() versteckt sich eine Zeichenkette (ein String). Es ist keine Liste oder Verkettung, wo man einzelne Elemente wieder herausnehmen könnte. Wenn du ein Debug File erzeugen lässt kannst du den Inhalt der Zeichenketten nachsehen.

 

Eine Lösung wäre mit einer Boolean Variable zu arbeiten.

 

my_function_is_active = true

function my_function()
  -- do something useful
end

do_sometimes("if my_function_is_active then my_function() end")

...

my_function_is_active = false   -- unregister

 

Share this post


Link to post
Share on other sites

Diese Variable müsste ich dann in meinem Script abfragen, richtig?

Wenn ja, dann ist es das übliche Vorgehen.

 

Ich kenne viele Scripte, welche Funktionen aufrufen lassen, nur damit die Funktion dann feststellt, dass sie nichts mehr tun muss/möchte.

Ziemlich viel (in der Summe der Funktionen) Aufwand für eigentlich nichts.

Da wäre eine Verbesserung, die Funktion erst gar nicht zu rufen, also ein echtes "unregister".

 

Liese sich das nicht realisieren (verkettete Liste etc.) ?

 

Gruß

Othello

 

Edit:

Ich glaube, ich habe eben erst verstanden, was du mit der Stringrepräsentation meinst.

Ich habe noch nicht nachgesachaut, wie das im Debugfile aussieht, das werde ich gleich nachholen.

Vermutlich ist der Overhead noch größer, als ich dachte :-)

 

Share this post


Link to post
Share on other sites

×
×
  • Create New...