更新:2022年8月6日 HSPトップへもどる
『 ネット画像を取得して利用 』 ◆ブラウザ上で動作するページ
★このスクリプトは、失敗例です。
現状、 HSP3Dish.js でWebアプリとしては動作しません。
WebDishサービス にも登録できません。
各自のPC上では、 HSP3Dish プログラムとして実行できます。
なにかの参考になるかもしれないので、一応 公開しておきます
JavaScript や PHP などが得意な人で簡単な方法がわかるかたがいたら、ぜひHSPユーザーのみんなに教えてもらえたらうれしいです。
たぶん、HSP3Dish helper で .html に変換したあとで、
<script>と</script>
で命令を埋め込むカタチになるかと思いますが、
当サイトでは HSP の話題からすこしずれていくので今はあとまわし。
HSP公式のユーザー登録サービス「SoupSeed 」で各ユーザーに
Apple の Game Center や iCloudキーチェーン のような保存領域が
数KB 提供されるとうれしい気もします。
WordPress の会員ログインサービスプラグインを用意して、
Webアプリ起動時にそこへアクセスして継続データを取得させるのも手軽な気もします。
PHPで手軽なものを自作する場合は、セキュリティに注意を。
★自分が所有しているサーバ・スペースであれば、独自の外部ファイル(画像、音声、テキスト他)もアップロードして HSP3Dish.js から読み込むことができます。
サンプルスクリプト
自分のPCのHSPスクリプトエディタにコピー・ペーストして F5 実行 することができます。(ネット接続環境が必要です)
#include "hsp3dish.as"
#include "hspinet.as"
// このスクリプトは
// 画像ファイルを自分で持たず、インターネット上から取得して、ローカルに保存し、
// その画像を使用するアプリを作る実験スクリプト
// このスクリプトは「WebDishサービス から WebDish素材 以外の画像を使う方法を模索する」
// ために実験的に作成したスクリプトです。
// 2022年8月時点では、このような方法は WebDishサービス および hsp3dish.js では使えません。
// (ファイルを作らず、取得したバイナリデータを直接描画できればできるかも??)
// ブラウザ上でないPC上の hsp3dish プログラムとしては動作します。
// 注意:他人のサイトの画像にひんぱんに直接アクセスするのはサーバを重くする可能性のある行為です。
// 今回はHSPの学習目的で、公式HSPがサンプルスクリプトとして提供しているURLを利用しています
gazouari=0 // 画像のダウンロード完了済みフラグ
px = 10 // 犬画像の座標
py = 150
;
; ファイルの取得(バイナリファイルの取得)
;
netinit
if stat : dialog "ネット接続できません。" : end
neturl "http://hsp.tv/images/bbs/mascot3.jpg"
netrequest_get ""
mes "DOWNLOAD 開始"
objsize 200,40
pos 0,50 : button "画像を読み込んで表示", *putpic1
*main
; 結果待ちのためのループ
netexec res
if res > 0 : goto *comp
if res < 0 : goto *bad
await 50
goto *main
*bad
; エラー
neterror estr
mes "ERROR "+estr
stop
*comp
; 完了
mes "DOWNLOAD 完了"
// バッファを確保(実際に受信した量より多めに確保される)
sdim buf, netgetv_size()
// 受信データを代入
netgetv_data buf
// 実際に受信したサイズを取得
title ""+netgetv_requestsize()+" bytes"
//mesbox buf,640,400,1
bsave "mascot8.jpg", buf, netgetv_requestsize()
//メインループ
*main_loop
stick key,15
if key&128 : end // ESCキーで終了
redraw 0
//----------------------------
//ダウンロードが終わったとき表示される
if gazouari=0 {
pos 0 ,0 : mes "DOWNLOAD 完了"
}
//----------------------------
//ボタンが押されたあと表示される
if gazouari>0 {
pos px,py : celput 1,0 //画像を描画
if gazouari=2 : px++ //「よーいドン」ボタンが押されたら動きはじめる
if px > 320 : px = -130 // 画面左はしにでたら、右端にもどす
}
//----------------------------
redraw 1
await 1000/60
goto *main_loop
stop
//================================================================
//ダウンロードした画像を1体を表示
*putpic1
gazouari=1 // 状況フラグ
cls // いま画面にでてるボタンとメッセージを消去
buffer 1,130,90 // ID 1 (画像バッファ)を準備。読み込むセル画像サイズにあわせてある
celload "mascot8.jpg",1 // セル画像をID 1 へ読み込む。 picload は ダメ!
celdiv 1,130,90 // マップチップ1個の大きさを指定
gsel 0
//競走開始ボタンを表示
objsize 200,40
pos 0,250 : button "よーい ドン!", *putpic2
goto *main_loop
stop
//================================================================
//画像がうごきだす
*putpic2
gazouari=2
cls //いま画面にでてるボタンとメッセージを消去
goto *main_loop
stop
//================================================================
// ★ このスクリプトは HSP公式が提供するHSP開発セット同梱の
// hsp37beta\sample\hspinet
// get_binary.hsp
// をお手本にしています
★ HSP公式サイトのサーバが重くなって迷惑になるような場合は、画像取得のアクセス先を変更します