コメントを受信してみよう
こんにちはこんばんはおはようございます。
昨年のアドカレでは、箱の作成から時計の表示までやりました。
次は何を作ろうか
そうだね、コメントを受信する何かだね。
ということで公式の焼き直しです。
https://virtualcast.jp/wiki/vci/script/reference/messagecomment
- コメントを受信するには「message」関数を使用します。
この関数、コメントの受信や入退出の他、
VCI同士の制御・変数値のやりとりや同期などに良く利用されます。
「message」を制する物は同期を制す。知らんけど。
今回はコメントの受信に重きをおいて説明していきます。
- サクッとコードを書き書き
function onMessage(sender,name,message)
msg="sender[name]="..sender["name"].."\n"..
"sender[type]="..sender["type"].."\n"..
"sender[commentSource]="..sender["commentSource"].."\n"..
"name="..name.."\n"..
"message="..message
print(msg)
end
vci.message.On('comment', onMessage)
コードを解説していきましょう。
- 「vci.message.On('comment', onMessage)」について
この関数と記述例の意味としては
システム(アプリケーション)から通知される「comment」というmessageを受信し、
「onMessage」という関数へ内容を渡すという意味です。
vci.message.Onはソースコードの最後に記入するべきだと昔読んだ気がするのですが・・
どこにも記載が見当たらないですね(違ったらごめんなさい)。 - onMessage(sender,name,message)
function onMessage(sender,name,message)
受信したmessageの内容は、onMessageへ「sender」「name」「message」のが通知されます。
「sender」は配列(テーブル)型の変数となっており、
「sender["name"]」「sender["type"]」「sender[“commentSource”]」が格納されています。
実際に検証しながら確認してみましょう!
なおショウルームは環境がないので未実施です・・。
ニコ生の184は無、つまり「""」で返されました。
(画像では文字結合の関係で空白となっています)
(昔nilじゃなかったっけ・・勘違いかな。)
-
sender[“commentSource”]
コメントソースと名のつくとおり、何処のプラットフォームからのコメントか判別できます。
コメントビューア等を作成する時に便利でしょう。
なおVCIはコメント元というかプラットフォームはないため、無「""」が返されました。
(画像では文字結合の関係で空白となっています) -
統合して表示してみよう
後は変数msgに一度情報を書出して見ましょう。
ごちゃごちゃしていますが、一応軽くコードの説明をすると・・
とにかく文字列や変数、改行コードをどんどん繋げて最後にprintで出力しています。 -
エラーメッセージについて
受信したmessageに引き渡す関数名または関数名そのものが不一致(無い)場合、
以下のようなエラーが表示されます。
逆に言うとこのエラーが表示された場合は関数名を間違えている可能性があります。
○最後に
いかがだったしょうか?
もう少しわかりやすく説明したかったのですが、このあたりが限界でした。
コメントを受信することによりコメントビューアや特定のコメントで動作する何かを作成できます。
皆さんもその何かを考えて作ってみてね!