On 10. 2. 2020 7:53, Zenchess wrote:
> The code I am trying to replicate in amber is: > > var sphere = BABYLON.Mesh.CreateSphere("", 10, 1, scene); > CreateSphere is a static method on the Mesh class according to the > documentation. > > I have tried both: > > (BABYLON at: 'Mesh') CreateSphere: 'jacob' value: 10 value: 1. > and > BABYLON Mesh CreateSphere: 'jacob' value: 10 value: 1 > > both fail saying that there is no method "CreateSphere". Also if I > inspect the object returned by BABYLON Mesh it just has 'prototype' and > 'length' and I get errors if I try to inspect the prototype. It looks like BABYLON.Mesh is a JS function, in which case it is captured by Amber class BlockClosure (printit 'BABYLON Mesh class' in workspace, it should say "BlockClosure"). In that case, it is proper Smalltalk object which only understand messages defined by its methods. In case a JS functions works also as a namespace (which is the case of a JS class and its static properties), you can use #provided helper message, as in: BABYLON Mesh provided CreateSphere: 'jacob' value: 10 value: 1 What #provided does it that it wraps the function is JSObjectProxy, treating it as raw JS object. In case you never plan to use Mesh as an instance of BlockClosure in Smalltalk code, you can un-Smalltalkize it forever, by: Smalltalk optOut: BABYLON Mesh somewhere at the app start. After which it is no more treated as a Smalltalk object but as a raw JS object, is automatically wrapped by JSObjectProxy behind the scenes and your original BABYLON Mesh CreateSphere: 'jacob' value: 10 value: 1 should work. Herby P.S.: If there is indeed a problem with inspector failure when you try to inspect prototype of a BlockClosure, you can fill an issue at lolg.it/amber/helios. Maybe try if the same happens if you inspect [] (an empty block), so that it is really a generic issue with any BlockClosure, or it is just something in Mesh.prototype that blows Helios inspector (I presume you use Helios, not legacy in-page IDE). > For now I can use inline javascript methods to get around this, but it > would be nice if there was a way to do it in just amber > > -- > You received this message because you are subscribed to the Google > Groups "amber-lang" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [hidden email] > <mailto:[hidden email]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/amber-lang/da7dc798-e914-4bd3-a0ea-dad5a72318ff%40googlegroups.com > <https://groups.google.com/d/msgid/amber-lang/da7dc798-e914-4bd3-a0ea-dad5a72318ff%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "amber-lang" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. To view this discussion on the web visit https://groups.google.com/d/msgid/amber-lang/855509d0-f731-625d-d93f-ae420da17532%40mailbox.sk. |
Free forum by Nabble | Edit this page |