0.upto(9) do
STDOUT.print "Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b\b" # (6 backspaces, the length of "Flash!")
sleep 0.5
end
このコードは機能しません。画面に印刷Flash!
されますが、点滅しません。バックスペースが有効になっていないかのように、そこにとどまります。しかし、私はこれを行います:
0.upto(9) do
STDOUT.print "Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b" # (5 backspaces, the length of "Flash! - 1")
sleep 0.5
end
そしてそれはほとんど機能します。これは次のように表示されます: FFFFFFFFFFlash!
(9 回のループの後) バックスペースの数が、削除している文字列の長さと同じであると、バックスペースが有効にならないのはなぜですか?
Railsの一部であるライブラリのみを使用して、この問題を克服し、点滅するメッセージを作成するにはどうすればよいですか?
私はこのような回避策を試しました:
0.upto(9) do
STDOUT.print " Flash!"
sleep 0.5
STDOUT.print "\b\b\b\b\b\b"
sleep 0.5
end
( 内のスペースに注意してください" Flash!"
)、メッセージが画面上をクロールしているように見えます。興味深い効果ですが、私が望むものではありません。
Windows 7 で Ruby と Rails でコマンド プロンプトを使用しています