Eval is short for evaluation and basically attempts to 'run' the string within the brackets as if it were code.
In your first post - the "ball" in inverted commas, is simply a string and means nothing more to Opus than "apples", "oranges" or "pears".
ball.move(x,y) however references an object not a string. In this case, the object is an on screen object such as an image, vector or frame.
In order, for a variable to work with move(x,y), the variable needs to reference an object. Opus includes different ways of achieving this, including FindChild(). You can also use the 'this' keyword for example:
Add the following line to an on show trigger on the ball image:
Code:
myVariable = this
As you have discovered, eval works, but it is not necessary the safest or best way to acquire an object. Understanding that objects are probably the most important aspect of Opus and definitely HTML5 programming will help you build better applications and you'll find I've posted quite in depth responses before on the topic.
</mack>