ごらくらいふ

プログラミングしたりゲームしたり

JavaScript

Appleのリファレンスページからclass名などのシグネチャを一括で引き上げるjavascript

開発者コンソールで叩いてササッと収集。snippetsにでも置いておくといい。 前提 2020/06/22 Chrome 83.0.4103.106 で確認 結論 $$(".task-topic-info .display-name").map(el => el.innerText) Deprecatedは無視する $$(".task-topic-info :not(.task-topic…

リファクタリング「リトル・レディ」 #1 画像ボタンをホバーで差し替える処理

約3年も前の話、「リトル・レディ」という作品をChromeで動くようにしたい! という思いのもと、勝手に復活開発日誌を始めた。 yajamon.hatenablog.com yajamon.hatenablog.com この開発は一気に進み、2年弱放置の後に完結宣言が行われた。 この記事は? …

ライフゲームってやつをDOM+VanillaJSで書いてみた

ライフゲーム - Wikipedia ライフゲームというものをつい最近知ったので、息抜きにガガガっと書いてみた。(DOM+VanillaJS製) 「まず動く」に重点を置いて書いて1.0.0のタグを切ったので、よければforkしてリファクタリングの練習材料にでもしてほしい。 gi…

genomirai.comのWORD_DUMPをパースする

おもむろに http://www.genomirai.com をやりたくなった。 プレイ中DUMPされた文字列が出力される場合があるが、ドラッグして選択しようとするとクリックが反応して先に進んでしまう。 ということでjavascriptコンソールに突っ込んで解決した。chromeでしか…

カウンターChrome拡張「CounterExt」を作りました!

つくりました!!!! chrome.google.com スクリーンショット 目的 カウントする何かがほしかったのです。 ゆくゆくは外部からのリクエストを受けて、カウンターのプラットフォームにする野望があります! src Githubでソース公開しています。 github.com 不…

ウィンドウサイズを1px単位で調整するchrome拡張「diccal」をアップデートしました!(ver.0.1.0)

以前公開した chrome拡張「diccal」をアップデートしました! yajamon.hatenablog.com 更新内容(0.1.0) 操作盤の長押しに対応しました!もう長連打の必要はありません! 操作盤を開くためにクリックする場所がちょっとわかりやすくなりました インストール …

Windows環境にて npm 3.x に アップデートした (正確には別途インストールした)

Windowsの人は大抵 MSI で node.js に同梱されたnpmを使っていると思う。 2015/09/25 現在、node:4.1.1 npm:2.14.4 試行錯誤 最初、npmのアップデート方法を探して試してみたがうまくいかなかった。 PS [User] > npm -v 2.14.4 PS [User] > npm update -g np…

chrome って unicode escape する関数あるんすね

chromeのコンソールで遊んでたり、littleLadyやってたりで知ったんですが、 chromeってescape関数あるんですね。 IEで実装されていたのが引き継がれたのかな。 escape("平も山も") // "%u5E73%u3082%u5C71%u3082" // サロゲートペア escape("𪚲") // "%uD869…

「リトル・レディ」かってに復活開発日誌 #19

今日の課題 ブラウザ終了後もデータを保持する だいぶやることもなくなってきた。 作業録 // /js/eventP.js //○クッキーゲット関数 function getC(key) { var storage = localStorage; /* 省略 */ } //○クッキーセット関数 function setC(key, val) { var st…

「リトル・レディ」かってに復活開発日誌 #18

今日の課題 シナリオ開始時にBGMが鳴るようにする 現状、画面遷移直前にBGM変更している。 これをシナリオ開始時に行うようにする。 作業録 // /index.htm function topS(){ /* 省略 */ if(maiFlag==2){ /* 省略 */ }else{ setC("Snum",180); // 消す // Cso…

Audioオブジェクトでフェードイン

フェードアウトがあればフェードインも必要。 Audioオブジェクトでフェードアウトする - ごらくらいふyajamon.hatenablog.com 環境 chrome 44.0.2403.130 m (64-bit) example 一定間隔でフェードイン volume = 0 + a*frame music = new Audio(); music.src =…

Audioオブジェクトでフェードアウトする

環境 chrome 44.0.2403.130 m (64-bit) example 一定間隔でフェードアウト volume = 1 - a*frame music = new Audio(); music.src = "your/music/path.mp3"; music.fadeTimerId = null; music.fadeOut = function (time) { var frame = 30; var frameCount =…

Audioオブジェクトでリピート再生する

環境 chrome 44.0.2403.130 m (64-bit) 乗るべきevent Audioオブジェクトにビルトインでリピートに関する機能がない。 機能はないが、実現するための条件は揃っている。 Audioオブジェクトが楽曲を再生しきったとき、endedイベントが発行される。 このevent…

「リトル・レディ」かってに復活開発日誌 #17

今日の課題 BGMを鳴らす! あらすじ NPAPIが使えないchromeにおいて、.midの再生にはSoundFontを取得して合成せねばならないらしい。 目的は作品に音楽を流すことのため、.midを.mp3へ変換し、Audioオブジェクトで再生することにした。 yajamon.hatenablog.c…

chromeでのMidiの再生にはSoundFontが必要らしい

MIDI(Standard Midi File)はざっくり言うと 演奏情報の集積体。音源はない。 どんな楽器のどんな音をどんな強さでどれだけの時間鳴らす。 そのあり方は楽譜に近いらしい。 音はどこにいるのか .mid に音源はない以上、どこかから音源をたぐり寄せなければ…

「リトル・レディ」かってに復活開発日誌 #16

今日の課題 hane.htmの修正に区切りをつけて、後の処理を確認する。 さっそく発生した。。。 作業録 次へボタンの動き <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=1 WIDTH="123" BGCOLOR="#3366FF" > <TR> <TD><center><B><FONT SIZE=+2><A HREF="javascript:newPage('event.htm')" onClick="select(181)">次へ</A></FONT></B></center></TD> </tr></table>

「リトル・レディ」かってに復活開発日誌 #15

前回、配列を連想配列として使おうとしていたために詰まっていた点を解消した。 羽が降る画面なのだが、どうも正常に動作していないようだった。 最後のspanだけが操作されている。 今日の課題 要素が適切に使われるようにする 作業録 即時関数を利用する ス…

「リトル・レディ」かってに復活開発日誌 #14

前回、hane.htmのエンバグを修正した。 が、特に画面に変化がなく、次の画面に遷移してしまった。 これはさすがにおかしいので、調査したところ不具合が見つかった。 今日の課題 hane.htm に見つけた不具合を解消する 作業録 BreakPointを貼って確認していた…

オブジェクト指向エクササイズでbreakはどうやるの?

ネックになったもの オブジェクト指向エクササイズの項目に、次のルールがある。 インデントは1メソッド1レベルのみ。 あれ、これってbreakどうやるの? サンプルコードを普通に書く サンプルコードを書く。return で十分なのだけどbreakの話なので容赦して…

「リトル・レディ」かってに復活開発日誌 #13

今日の課題 炙りだされた不具合を解決する 前回、BGanime()、slideLS()から呼び出されたものを改修したら、不具合が発生した。 これを解決する 作業録 bga8 ? 詰まっているところを確認したところ、bga8というエレメントが見つからず、moveL()からエラーを吐…

「リトル・レディ」かってに復活開発日誌 #12

今日の課題 BGanime()が呼び出しているfunctionを動作させる slideLS()が呼び出しているfunctionを動作させる 作業録 対象の関数は以下。 moveL() getSWsize() getSHsize() moveL() この関数、eventP.jsで定義されているものと同じものだった。 同ファイルが…

「リトル・レディ」かってに復活開発日誌 #11

前回、シナリオを演出込みで読み進められるようになった。 そこで、オープニングシナリオを読み進めたところ。。。 (ノ∀`)アチャー 今日の課題 Maximum call stack size exceeded を解決する 作業録 BGanime が slideLSを、slideLS が BGanimeを呼び出しあってい…

「リトル・レディ」かってに復活開発日誌 #10

今日の課題 エフェクト処理を動作させる 目的 意図された演出を体験する 結果 動きました。 作業録 eventP.js内のdocument.allを全て修正する。 // /js/eventP.js ///////////////////////////////////// //○レイヤーを前に出す function zindexL(layName, z…

「リトル・レディ」かってに復活開発日誌 #9

今日の課題 start ボタンクリック時のワイプ処理を動作させる 目的 意図された演出を体験する 作業録 クリック時の処理をおさらい // /index.htm function topS(){ var BSW = getBSW()+15; var BSW1 = Math.floor(BSW/2); var BSH1 = getBSH()+10; // 省略(…

「リトル・レディ」かってに復活開発日誌 #8

今日の課題 シナリオを表示させる 目的 シナリオを読む 作業録 前回の修正で、document.allの存在チェックを行っているところは処理が実行されないことが判明した。 同様の修正で、シナリオが表示されるようにする。 次のメッセージを表示する newM()を確認…

「リトル・レディ」かってに復活開発日誌 #7

今日の課題 showL()を正常に動作するよう調査する 目的 動作不良の改善 作業録 動作不良を確認していたところ、上述のshowL()がそもそも意図した動作をしていなかった。 以下のソースが意図した動作をすれば、画面には▼が表示される。 しかし、実際には出力…

「リトル・レディ」かってに復活開発日誌 #6

今日の課題 隣接フレームへの操作を削除する 目的 デバッグ作業の改善 作業録 音再生処理の削除 各ページにあるCsound(url)をコメントアウトした。 embedによる音再生処理はNPAPIの関係でchromeで動作していないため 特段問題なかった。 これで、index.htm, …

「リトル・レディ」かってに復活開発日誌 #5

今日の課題 データの保存をdocument.cookieからsessionStorageに移行する 目的 ページ間を跨いだデータを共有する シナリオjsファイルの読み込みができるようにする 作業録 setCの修正 function setC(key,val){ var storage = sessionStorage; storage.setIt…

「リトル・レディ」かってに復活開発日誌 #4

今日の課題 ↓エラーの発生原因を調査する 目的 エラーがゲーム進行の妨げになっているため、これを取り除く*1 作業録 前回のあらすじ 前回、シナリオjsファイルにclick()を発見した。 yajamon.hatenablog.com なぜ見つからないのか調査する。 本当に読み込ん…

「リトル・レディ」かってに復活開発日誌 #3

今日の課題 いったいどこにあるclick()を探しているのか調査する 目的 エラーがゲーム進行の妨げになっているため、これを取り除く*1 作業録 click()が未定義のため、どういう流れで定義を期待しているのか追う。 なお、event.htm内には存在しなかった。 も…