rbCanvas/p5は p5.js(JavaScript)の関数をラップする役目も担っており、それによって
JavaScriptのコードをほとんど意識することなくプログラミングをおこなうことが
できるようになっていますが、状況によっては JavaScriptのネイティブなオブジェクトを
そのまま受け取らなければならないケースも生じます。
このとき、Rubyのコードではそれらのオブジェクトを直接扱うことができませんが、
Opalによって提供されている Nativeメソッドを使用することで
JavaScriptのネイティブなオブジェクトがラップされ、
Rubyのコード上でも通常のオブジェクトとして扱うことができるようになります。
| 引数名 | 内容 | 備考 | オプション | デフォルト値 |
|---|---|---|---|---|
| `...` | JavaScriptのネイティブオブジェクト |
Nativeオブジェクト
・JavaScriptのハッシュを Nativeメソッドに通した場合、
Rubyのコードからは「hash[:key]」という参照記法だけでなく
JavaScriptに準じた「hash.key」という参照記法も使用することができます。
・現時点では、この Nativeメソッドの使用が必要になるのは以下の各メソッドでの
ブロック引数などの処理時のみですが、Nativeメソッドは JavaScriptと Rubyとの間の
橋渡し役として機能しています。
| メソッド | 発生するネイティブなオブジェクト | 備考 |
|---|---|---|
| (p5.Element.obj).mouseWheel | イベントオブジェクト | |
| (p5.Element.obj).drop | ファイルオブジェクト | |
| createFileInput | ファイルオブジェクト |