Curl Global Community
画像を動的に差し替えることは可能でしょうか - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Caede questions (https://communities.curl.com/forumdisplay.php?fid=23)
+--- Thread: 画像を動的に差し替えることは可能でしょうか (/showthread.php?tid=363)



画像を動的に差し替えることは可能でしょうか - みつくに - 12-02-2011

Caedeで作成したプログラムで、
起動後に画像を差し替えるような動作を考えています。
Graphicクラスで

{image
   source={url "adria.jpg"}
}

とすれば画面に画像を貼り付けることは普通にできましたが、
これを別の画像に差し替える方法がわかりません。
どのようにすればよいでしょうか。



RE: 画像を動的に差し替えることは可能でしょうか - ashimo - 12-05-2011

imageテキストプロシージャの代わりにcaede-imageプロシージャを使います。

Curl Developer Centerの逆引きリファレンス→モバイル開発環境「Caede」→GUIコンポーネント
にも解説があります。
http://developers.curlap.com/re-reference/57-caede/782-gui.html

ローカルの画像ファイルを使用したい場合は image-map引数にHashTabelに登録する必要があり、
どの画像ファイルを使用するかは、 そのHashTableに登録されたキー(文字列)で指定します。
Code:
    || Graphicクラス
    {caede-image
        name = "new_image_g",
        image-map =
            {{HashTable-of String, Url}
                "logo1", {url "image/logo1.png"},
                "logo2", {url "image/logo2.png"}
            },
        "logo1"
    }
    {caede-image
        name = "new_image_g2",
        "logo2"  
    }
image-mapは一度にまとめて指定することができ、 一度登録すると、別のcaede-imageプロシージャから
キーだけで使用できます。(ex 上記の"logo2"の指定)

画像ファイルを切り替える時は、Screenクラスで以下のようにします。
Code:
|| CaedeImageGraphicコントロールを取得
set self.image-g = {self.find-graphic-by-name "new_image_g"} asa CaedeImageGraphic

|| sourceプロパティを再設定
set self.image-g.source = "logo2"
}

なお、caede-image、CaedeImageGraphicを使用するときには
COM.CURL.CAEDE.TRANSLATOR.HTML.CLIENTパッケージからのインポートが必要です。
load.scurlなどに以下のimport文を追加してください。

{import * from COM.CURL.CAEDE.TRANSLATOR.HTML.CLIENT}