AIRNovel 二軍タグ リファレンス
はじめに
- 「二軍タグ」とはAIRNovel本体に入れるほどではない、しかしプラグインでは(セキュリティーポリシーなどの理由で)実現できないタグ機能の事です。
- 利用したい場合は SDK/an_sdk/../addition_script.as に追加しコンパイルして下さい。
- ここに公開したActionScriptソースは全てMIT Licenseです。自由に改変してご活用ください。
- その他はタグリファレンスの「はじめに」と同様です。
json文字列から値を取得し、変数に代入する。
成否は変数const.an.let_json_decode.successにセットされる。成功した場合はtrue。
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
成否は変数const.an.let_json_decode.successにセットされる。成功した場合はtrue。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | String(変数名書式) | 変数名 | |
json | y | String | json文字列 | |
path | y | String | jsonツリー構造上の参照する値へのパス。「.」(ピリオド)で区切る。 |
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
// json分解取得 hTag.let_json_decode = function(hArg:Object):Boolean { const name:String = hArg.name; if (! name) throw("[let_json_decode] nameは必須です"); const json:String = hArg.json; if (! json) throw("[let_json_decode] jsonは必須です"); const path:String = hArg.path; if (! path) throw("[let_json_decode] pathは必須です"); hTmp["const.an.let_json_decode.success"] = false; try { var o:Object = CmnLib.parseJson(json); const vctPath:Vector.<String> = Vector.<String>(path.split(".")); const len:uint = vctPath.length; for (var i:uint=0; i<len; ++i) { o = o[vctPath[i]]; } setVal(name, o.toString()); hTmp["const.an.let_json_decode.success"] = true; } catch (e:Error) { traceDbg("[let_json_decode]例外 mes="+ e.message +"("+ e.name +")"); } catch (mes:String) { traceDbg(mes); } return false; };
指定URLのHTTPサービスから文字列を取得し、変数に代入する。
成否は変数const.an.let_webapi.successにセットされる。成功した場合はtrue。
エラー時は変数const.an.let_webapi.errにエラーメッセージをセットする。
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
成否は変数const.an.let_webapi.successにセットされる。成功した場合はtrue。
エラー時は変数const.an.let_webapi.errにエラーメッセージをセットする。
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
name | y | String(変数名書式) | 変数名 | |
url | y | String(URL) | セットする値を返すネット上のURL |
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
// webapi取得 hTag.let_webapi = function(hArg:Object):Boolean { const name:String = hArg.name; if (! name) throw("[let_webapi] nameは必須です"); const url:String = hArg.url; if (! url) throw("[let_webapi] urlは必須です"); hTmp["const.an.let_webapi.success"] = false; const ldMng:LoadMng = new LoadMng(); ldMng.getURLLoader( url , function (ldr:URLLoader):void { setVal(name, ldr.data.toString()); hTmp["const.an.let_webapi.success"] = true; } , function (e:Event):Boolean { hTmp["const.an.let_webapi.err"] = e.toString(); traceDbg("[let_webapi] IO_ERROR["+ e.toString() +"]"); return true; // throwせず続行 } ); error(IOError, err_let_webapi); error(SecurityError, err_let_webapi); ldMng.join(); ldMng.start(); return true; }; function err_let_webapi(e:Error, t:Thread):void { trace('読み込みエラーが発生しました'); }
文字列をクリップボードに入れる。
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
属性 | 必須 | 省略時 | 値域・型 | コメント |
---|---|---|---|---|
text | n | そのページの本文 | String | クリップボードに入れる文字列 |
addition_script.asに追加するソース(必ずUTF-8で保存、コメント行は省略)
// set_clipboardクリップボードへ設定 hTag.set_clipboard = function(hArg:Object):Boolean { var text:String = hArg.text; if (! text) { text = (hTmp["const.an.last_page_text"] as Function)(); } text = text.replace(/(|.+?)?《.+?》|\n+/g, ""); import flash.desktop.Clipboard; import flash.desktop.ClipboardFormats; Clipboard.generalClipboard.clear(); Clipboard.generalClipboard.setData( ClipboardFormats.TEXT_FORMAT , text ); return false; };