2024年12月19日木曜日

RiveのアニメーションをOracle APEXのアプリケーションに表示する

RiveのアニメーションをOracle APEXのアプリケーションに表示してみます。組み込みにはRiveのDocsRuntimesGetting startedWeb (JS)に記載されている手順を元にします。

今回はRiveのライブラリをRequireJSを使って読み込むようにします。また、ライブラリの読み込みからアニメーションの描画を行うコードを別のファイルに記述し、Oracle APEXのページにはコードを一切埋め込まないようにします。

作成したAPEXアプリケーションは以下のように動作します。


以下より実装について簡単に紹介します。

空のAPEXアプリケーションを作成します。名前Play Riveとしました。

ホーム・ページに静的コンテンツのリージョンを作成し、ソースHTMLコードにRiveのアニメーションを表示するキャンバス要素を記述します。

<canvas id="canvas" width="500" height="500"></canvas>


共有コンポーネント静的アプリケーション・ファイルとして、play-rive.jsを作成します。


作成済みの静的アプリケーション・ファイルが一覧されます。ファイルの作成をクリックします。


ファイル名としてplay-rive.jsを入力します。作成をクリックします。


スクリプト・エディタが開きます。以下の内容を記述し、変更の保存をクリックします。参照ページ・プロパティJavaScriptファイルURLに記載するため、コピーしておきます。

RequireJSを使ってRiveのランタイム・ライブラリを読み込んだ後に、RiveのGetting startedに記載されているアニメーション表示を実行します。


静的アプリケーション・ファイルの一覧を開き、ファイルとしてplay-rive.jsとミニファイルされたplay-rive.min.jsが作成されていることを確認します。


ページ・プロパティJavaScriptのファイルURLに、作成した静的アプリケーション・ファイルへの参照を記述します。RequireJSを使えるように参照の前に[require requirejs]を付加します。Oracle APEX 24.1に含まれている、RequireJSの2.3.7が自動的にロードされます。

[require requirejs]#APP_FILES#play-rive#MIN#.js


以上でアプリケーションは完成です。アプリケーションを実行すると、記事の先頭のようなアニメーションが表示されます。

JavaScriptのモジュール・システムのトレンドはESモジュールだと思いますが、Oracle APEXにはRequireJSがバンドルされていて、比較的簡単にRequireJSを呼び出すことができます。

今回作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/play-rive.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。