セレクタ
以下が詳しい。
weboook.blog22.fc2.com
Slickの導入
htmlから読み込む
<script type="text/javascript" src="/js/slick/slick/slick.min.js"></script> <link rel="stylesheet" type="text/css" href="/js/slick/slick/slick.css" media="screen" /> <link rel="stylesheet" type="text/css" href="/js/slick/slick/slick-theme.css" media="screen" />
- 表示用のボタンを貼り付ける
<ul class="slick-box"> <li class="slick-item"> <button data-id="menu1"> <img src="./resource/1.png" width="250px" height="250px" alt=""/> <p>1</p> </button> </li> <li class="slick-item"> <button data-id="menu2"> <img src="./resource/2.png" width="250px" height="250px" alt=""/> <p>2</p> </button> </li> <li class="slick-item"> <button data-id="menu3"> <img src="./resource/3.png" width="250px" height="250px" alt=""/> <p>3</p> </button> </li> <li class="slick-item"> <button data-id="menu4"> <img src="./resource/04.png" width="250px" height="250px" alt=""/> <p>4</p> </button> </li> </ul>
- 表示用する
<script type="text/javascript"> /// スライダー表示 $(function() { $('.slick-box').slick({ accessibility: true, adaptiveHeight: true, autoplay: false, dots: true, arrows: true, speed: 300, fade: false, infinite: true, slidesToShow: 1, slidesToScroll: 1, centerMode: true, centerPadding: "60px", mobileFirst: true, focusOnSelect:false, focusOnChange:false, draggable: true, touchMove: true, swipe: true, swipeToSlide: true, verticalSwiping: false, vertical: false }); }); </script>
現在形
typescript環境的な一覧
typescript start script · GitHub
DOM関連2
DOM Standard
詳細はこれを読むことになる。
既存メソッドの拡張
declare interface String { getCount(): number; } (String.prototype as any).getCount = function () { return this.length; };
でimportする。
iframeとタイマー
タイマーでiframeを切り替えてみた。
function getID(identifier:string):string { return '[data-id="' + identifier +'"]' } const x:JQuery<HTMLIFrameElement> = $(getID("child")) as JQuery<HTMLIFrameElement> const y = x.get(0); setTimeout(function(){ y.src ="./hoge.html"; },2000) y.src = "./hogehoge.html";
文字列受け渡し
class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() external fun printNative(str:String, len:Int); } fun main(args: Array<String>) { Hello().printHello() val str = "hello form kotoln" Hello().printNative(str, str.length) }
でcpp側は
#include "Hello.h" #include <iostream> #include <string> extern "C" { JNIEXPORT void JNICALL Java_Hello_printHello (JNIEnv *env, jclass obj) { std::cout << "hello cpp" << std::endl; } JNIEXPORT void JNICALL Java_Hello_printNative (JNIEnv *env, jclass obj, jstring str, jint len) { /// charに変換 jboolean iscopy; const char* msgStr = env->GetStringUTFChars(str, &iscopy); char* copiedChars = strdup(msgStr); env->ReleaseStringUTFChars(str, msgStr); env->DeleteLocalRef(str); printf("%s\n", copiedChars); } }
でいけた。 が、おそらくこの辺の文字コードの話がいるはず…。
Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
とか
java, a unicode char will be encoded with 4 bytes (utf16). jstring will container characters utf16 std::string in c++ is essentially a string of bytes, not characters,not characters we have convert utf16 to bytes.
とか
- 返却値
class Hello { companion object { init { System.loadLibrary("Hello") } } external fun printHello() external fun printNative(str:String, len:Int): Boolean; } fun main(args: Array<String>) { Hello().printHello() val str = "hello form kotoln" val ret = Hello().printNative(str, str.length) println("ret = " + ret) }
#include "Hello.h" #include <iostream> #include <string> extern "C" { JNIEXPORT void JNICALL Java_Hello_printHello (JNIEnv *env, jclass obj) { std::cout << "hello cpp" << std::endl; } JNIEXPORT jboolean JNICALL Java_Hello_printNative (JNIEnv *env, jclass obj, jstring str, jint len) { /// charに変換 jboolean iscopy; const char* msgStr = env->GetStringUTFChars(str, &iscopy); char* copiedChars = strdup(msgStr); env->ReleaseStringUTFChars(str, msgStr); env->DeleteLocalRef(str); printf("%s\n", copiedChars); return true; } }