HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0630
yo0810hsp3dish WEB 文字の横サイズと文字切れ8解決


yo0810

リンク

2019/6/30(Sun) 10:08:11|NO.87778

こんにちは。

 お世話になります。

 androidは解決できましたが、同じようにWEBだと下記の様に

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
---------------------------------
と表示すると、上下で終わりの位置にずれが生じてしまいます。

ずれないフォントを利用する手段はありませんでしょうか。

また なぜか文字列が最後まで表示されない時があります。

cを表示しているのに半分だけが表示されたりとかです。どうも「strf」を利用している
ときにおきてる気がします。

よろしくお願いいたします。



この記事に返信する


K-s

リンク

2019/7/1(Mon) 18:04:54|NO.87792

フォントが等幅でないのが原因ですが
現在のhsp3dish.jsはfont命令のフォント指定に対応していないためソースコードを書き換えてjsファイルをビルドし直す必要があります。

http://dev.onionsoft.net/trac/openhsp/browser/trunk/hsp3dish/emscripten/hgtex.cpp?rev=982
の574行目の sans-serif を monospace に変えてビルドすれば等幅フォントになると思います。

以前にfont命令に仮対応したものを作ったので使ってみてください。
https://github.com/skymonsters-Ks/Small-plates/blob/7efa37aaf61a343dc96887a6aff61ea056ba81c3/docs/js/hsp3dish.js

このhsp3dish.jsを hspフォルダ\hsp3js\hsp3dish.js と置き換えて(元のファイルはバックアップしてください)
hspスクリプトに
font "monospace", 20 ; 大きさは自由

を加えればいけると思います。(monospaceはあくまで種類なので環境によって表示されるフォントは異なります) 文字列が途中で切れるのは半角スペースが連続で入っていませんか? 多分それも対応できていると思います。(HTMLで複数のスペースが1つになるのが原因だったと思う…



K-s

リンク

2019/7/1(Mon) 18:50:14|NO.87793

574行目だけでなく510行目にも sans-serif ありました…
あと前後の引用符は取り除かないといけないかもしれません。

別の方法で hsp3dish.js 内を検索して 'sans-serif' を monospace に置き換えることでも等幅になると思います。
こっちのほうが簡単ですね…



yo0810

リンク

2019/7/2(Tue) 14:10:44|NO.87796

K-s 様

ありがとうございます。

下記の事をやってみました。

1、hsp3dish.jsをK-sさんの物に入れ替えてみてfontを指定したところ、
読み込み画面のまま止まって動かなくなりました。

2、ビルドして、できたhsp3dish.js内を検索し、monospaceに置換したところ、効果が
得られませんでした。

3、hsp3jsフォルダ内のhsp3dish.jsを書き換えて、ビルドしたところ、効果が
得られませんでした。

「'」シングルコートの有る無し2種類試しましたが、どちらも変化なしです。

なかなか、うまくいかないものですね。



K-s

リンク

2019/7/2(Tue) 16:40:26|NO.87797

hsp3dish.js内の置換(2の方法)でテスト作ってみたので下のURLから確認してもらえますか。
https://skymonsters-ks.github.io/webtest/test.html

自分の環境(windows10のfirefox, chrome, edge、androidのchrome)ではフォントはそれぞれ異なりますが全て等幅になっているのですが、どうでしょうか。



yo0810

リンク

2019/7/2(Tue) 18:22:17|NO.87798

K-s 様

 ありがとうございます。

 もう一度、2と3を試したところ、問題なく動作しました。
 先ほど動作しなかったのが???

 ありがとうございます。

 後は、半角スペースの問題を解決してみます。



yo0810

リンク

2019/7/2(Tue) 20:13:25|NO.87801

最後の文字が切れる原因は

mes " abcde" ->abcd となります。1文字目が半角スペースだと表示文字数を
間違えるようです。

mes " abcde " ->abcde 最後に全角スペースを入れることで一応表示はされるので、
これでとりあえずは、対応しようと思います。



K-s

リンク

2019/7/3(Wed) 12:48:57|NO.87807

先頭の半角スペースもそうでした…

hsp3dish.js内に "div" という文字列が2箇所あると思いますが、
初めの方(少し前後に "hsp3dishFontDiv" がある方)を "div" から "pre" に変えてみてください。



yo0810

リンク

2019/7/3(Wed) 22:42:46|NO.87811

K-s 様

ありがとうございます。

1文字目の半角スペース問題なく表示されるようになりました。



ONION software Copyright 1997-2023(c) All rights reserved.