Why doesn't canvas_refresh() doesn't work on its own from within a script?
I am trying to make a Canvas object template and a foundation starting point for canvas objects.
When trying to initialise the canvas via canvas_refresh(), the script does not compile.
But when I declare a variable inside the script and make the canvas_refresh() refer to the declaration variable, it works?
So,
Create script > Manual Execution > Touch - Multitouch > Redraw - On demand
Inside Canvas object create a script called 'Test'
Inside script write:
canvas_refresh();
This does not work.
But when you write,
decl this = getobject();
canvas_refresh(this);
The script compiles fine. Why does this happen?
Why is it not possible to manually call canvas_refresh() from it's own script?
canvas_refresh() not working like described
canvas_refresh() not working like described
--Beatbox Loop Artist--
2 x KP3+, RC-505, Behringer FCB1010, Turnado, Looperator, The Mouth,The Finger, Lemur, i5 Mid-2012 Macbook Pro
2 x KP3+, RC-505, Behringer FCB1010, Turnado, Looperator, The Mouth,The Finger, Lemur, i5 Mid-2012 Macbook Pro
-
midikinetics
- Regular
- Posts: 66
- Joined: 15 May 2015 17:46
- Contact:
Re: canvas_refresh() not working like described
Great question, OP. It sounds like you might be coming from an object-oriented programming (OOP) background.
In OOP, an object exposes a set of methods that you call directly on it, for example:
However, Lemur’s scripting language is not object-oriented: It is more like the C programming language. Objects do not define the set of operations available on them. Instead, functions are defined globally, and you must pass the object to be operated on. The runtime then checks whether the operation is valid for the object you passed.
So the reason your script didn’t compile is that there is no method canvas_refresh() that takes no arguments. There is only the global function canvas_refresh(canvas) that expects you to pass the canvas object as an argument.
Cheers
In OOP, an object exposes a set of methods that you call directly on it, for example:
Code: Select all
canvas.refresh();
canvas.fill();
canvas.stroke();
So the reason your script didn’t compile is that there is no method canvas_refresh() that takes no arguments. There is only the global function canvas_refresh(canvas) that expects you to pass the canvas object as an argument.
Code: Select all
canvas_refresh(canvas)