Native

Nativeメソッドについて

rbCanvas/p5は p5.js(JavaScript)の関数をラップする役目も担っており、それによって
JavaScriptのコードをほとんど意識することなくプログラミングをおこなうことが
できるようになっていますが、状況によっては JavaScriptのネイティブなオブジェクトを
そのまま受け取らなければならないケースも生じます。

このとき、Rubyのコードではそれらのオブジェクトを直接扱うことができませんが、
Opalによって提供されている Nativeメソッドを使用することで
JavaScriptのネイティブなオブジェクトがラップされ、
Rubyのコード上でも通常のオブジェクトとして扱うことができる
ようになります。

書式

Native(`...`)

引数

引数名内容備考オプションデフォルト値
`...`JavaScriptのネイティブオブジェクト

戻値

Nativeオブジェクト

備考

・JavaScriptのハッシュを Nativeメソッドに通した場合、
 Rubyのコードからは「hash[:key]」という参照記法だけでなく
 JavaScriptに準じた「hash.key」という参照記法も使用することができます。

・現時点では、この Nativeメソッドの使用が必要になるのは以下の各メソッドでの
 ブロック引数などの処理時のみですが、Nativeメソッドは JavaScriptと Rubyとの間の
 橋渡し役として機能しています。

メソッド発生するネイティブなオブジェクト備考
(p5.Element.obj).mouseWheel イベントオブジェクト
(p5.Element.obj).drop ファイルオブジェクト
createFileInput ファイルオブジェクト