Une expression est évaluée comme s'il y avait un =
au début
result = expression
les conditions :
result = iif(condition, expression1, expression2)
ne fonctionne pas de cette maniere :
result = if condition then expression1 else expression2 end
Car avec la fonction iif ()
(ou toute autre fonction), chaque argument est évalué et les résultats obtenus
sont passés à la fonction. Dans la fonction iif ()
, il ne voit pas les expressions originales.
Il ne voit que la valeur que chacun a produite. Puis iif ()
retourne celui qui convient
en fonction de la valeur qui lui a été donnée pour l'expression de condition déjà évaluée.
Une méthode courante dans Lua :
(condition) and (expression1) or (expression2)
Il a l'avantage que si condition est fausse, expression1 n'est pasvévalué. Mais expression2 sera toujours évaluée.
Il est également possible de préfixer une expression avec un :
pour empêcher la
loopback, alors vous pouvez faire plein d'instructions de script (plutôt
qu'une simple expression):
:if == 2 then return 3; else return 4; end
x = <condition> and (print(“first”) or true) or (print(“second”) or true)
Text("Frame: " .. time .. " of " .. ((comp.RenderEnd-comp.RenderStart)) )
Resultat :
Frame : 0 of 1000
Text("Progress: " .. math.ceil(((time)/comp.RenderEnd)*100) .. "%")
Resultat :
Progress: 100%
Text(self:GetSourceTool("MetadataSource").Output.Metadata.Filename)
Text(self:GetSourceTool("MetadataSource").Name)
Text("[Camera] " .. self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Make .. " " .. self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Model .. "\n" ..
"[ISO] " .. self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Exif.PhotographicSensitivity .. "\n" ..
"[Focal Length] " .. self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Exif.FocalLength .. " mm\n" ..
"[Shutter Speed] 1/" .. 1/self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Exif.ExposureTime .. " th of a second\n" ..
"[F-Stop] " .. self:GetSourceTool("MetadataSource").Output.Metadata.Camera.Exif.FNumber .. "\n" )
self:GetSourceTool("MetadataSource").Output.OriginalWidth
self:GetSourceTool("MetadataSource").Output.OriginalHeight
Text(assert(io.open(comp:MapPath("comp:/body.txt"), "r")):read("*all"))