コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

Luarida 1.52Betaをリリースしました

1月のすまべん関西#13に行ってきました。とても楽しかったです。ということで、Luarida1.52Betaをリリースしました。直接ダウンロードはここから(Luarida152Beta.apk)。
 Luarida v1.53Betaをリリースしました。新バージョンはこちらから。
http関連コマンドをこのバージョンから新規に追加しました。インターネット上のファイルをhttpプロトコルを用いて取得することができます。

http.get( URL, Filename )

URLを指定して、ファイルを取得します。例えば、自宅サーバ上に置いたtest.luaを取得したいときには、下記のように書けば、SDカードのluaridaフォルダにtest.luaとして保存されます。
戻り値はありません。

 http.get( "http://192.168.0.1/test.lua" , "/sdcard/luarida/test.lua" )

http.status()

http.getコマンドは非同期で動かしているため、http.statusコマンドによって、ファイル取得状況を確認します。戻り値は下記の意味を持ちます。

  • 0 : http.getによりファイル取得中
  • 1 : http.getによるファイル取得の正常終了
  • 2 : URLのプロトコルが開けない(http://が間違っているなど)
  • 3 : 接続できない、またはURLが見つからない(ネットワークに繋がっていないなど)
  • 4 : データ取得時にエラー発生
  • 5 : 保存ファイルが開けない(Pathが間違っているなど)
  • 6 : 接続タイムアウト(途中でネットワークが切れたなど)
  • 7 : httpスレッド起動時にエラー発生(メモリ不足など)

ファイルの取得を待つのであれば、下記のように使えます。

 http.get( "http://192.168.0.1/test.lua" , "/sdcard/luarida/test.lua" )
 while( http.status()==0 )do end  --ファイルを取得するまで待ちます。

http.addHeader( HeaderName , Data )

http.getコマンドを行うときに、ヘッダを追加できます。例えば、User-Agentを変更したいときは下記のように書けばOKです。戻り値はありません。

 http.addHeader( "User-Agent" , "Luarida/1.52Beta(Android1.6)" )
 http.get( "http://192.168.0.1/test.lua" , "/sdcard/luarida/test.lua" )
 while( http.status()==0 )do end  --ファイルを取得するまで待ちます。

ヘッダの追加は自由にできますし、バイナリファイルの取得も可能なので、下記のようなこともできます。

 http.addHeader( "Referer" , "http://www.bijint.com/" )
 http.addHeader( "User-Agent" , "Luarida/1.52Beta(Android1.6)" )
 http.get( "http://www.bijint.com/jp/img/clk/0126.jpg" , "/sdcard/luarida/0126.jpg" )
 while( http.status()==0 )do end

サーバー上のスクリプトを実行する

http.getコマンドによりサーバ上のファイルを取得できるので、下記のようなスクリプトを書くと、サーバ上に置いたスクリプトファイルを実行できます。

 http.get( "http://192.168.0.1/test.lua" , "/sdcard/luarida/test.lua" ) --スクリプト取得
 while( http.status()==0 )do end
 system.setrun( "/sdcard/luarida/test.lua" )  --スクリプト実行

以上が、今回のバージョンアップの大きな変更点です。

Luarida v1.52Betaコマンド一覧

最後に、Luarida v1.52Betaのコマンド一覧を書いておきます。

入力関連

editText( タイトル )
touch( [タッチ条件] )

System関連

system.exit()
system.expCall( クラス名 [,データ,タイプ] )
system.getSec()
system.impCallActionSend( データ文字列 [,タイプ] )
system.impCallActionView( データ文字列, タイプ )
system.setrun( Luaridaファイル名 )
system.version()

グラフィック関連

canvas.drawCircle( CX, CY, R, 色 [,塗りつぶし])
canvas.drawCls( 背景色 )
canvas.drawLine( X0, Y0, X1, Y1, 色)
canvas.drawRect( X0, Y0, X1, Y1, 色 [,塗りつぶし])
canvas.getColor( X, Y )
canvas.getg( GX0,GY0,GX1,GY1,WX0,WY0,WX1,WY1 )
canvas.getviewSize()
canvas.loadBmp( 画像ファイル名, WX0,WY0,WX1,WY1 [, n] )
canvas.putCircle( CX, CY, R, 色 [,塗りつぶし])
canvas.putCls( 背景色 )
canvas.putflush([GX0,GY0,GX,GY1])
canvas.putg( GX0,GY0,GX1,GY1,WX0,WY0,WX1,WY1 )
canvas.putLine( X0, Y0, X1, Y1, 色)
canvas.putRect( X0, Y0, X1, Y1, 色 [,塗りつぶし])
canvas.putrotg( CX,CY,角度,WX0,WY0,WX1,WY1 )
canvas.saveBmp( 画像ファイル名, WX0,WY0,WX1,WY1 )
canvas.setMainBmp( Width, Height )
canvas.setWorkBmp( Width, Height )
canvas.workCls([Color])
color( R, G, B [,Alpha] )

文字描画関連

canvas.drawText( 文字列, GX, GY, 文字サイズ, 文字色[,背景色] )
canvas.drawTextBox( 文字列, GX, GY, 文字サイズ, 文字色, 描画幅[,背景色] )
canvas.drawTextCenter( 文字列, CX, GY, 文字サイズ, 文字色[,背景色] )
canvas.drawTextRotate( 文字列, CX, CY, 角度, 文字サイズ, 文字色[,背景色] )
canvas.putText( 文字列, GX, GY, 文字サイズ, 文字色[,背景色] )
canvas.putTextBox( 文字列, GX, GY, 文字サイズ, 文字色, 描画幅[,背景色] )
canvas.putTextRotate( 文字列, CX, CY, 角度, 文字サイズ, 文字色[,背景色] )

http関連

http.addHeader( ヘッダ名, 内容 )
http.get( URL, 取得ファイル名 )
http.status()

ダイアログ関連

dialog( タイトル, 本文[,ボタンの種類] )
item.add( 文字[,フラグ] )
item.check( タイトル )
item.clear()
item.list( タイトル )
item.radio( タイトル,初期選択位置 )
toast( 本文 [,表示時間] )

センサ関連

sensor.getAccel()
sensor.setdevAccel(0|1)
sensor.setdevMagnet(0|1)
sensor.setdevOrient(0|1)
sensor.getGdirection()
sensor.getMagnet()
sensor.getOrient()

サウンド関連

sound.isPlay(サウンド番号(0〜7))
sound.pause(サウンド番号(0〜7) )
sound.restart(サウンド番号(0〜7))
sound.setSoundFile(サウンドファイル名, サウンド番号(0〜7), BGM・効果音フラグ )
sound.start(サウンド番号(0〜7) [, Loop有無] )
sound.stop(サウンド番号(0〜7) )