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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1019
taishou数秒後に画面切り替え3未解決


taishou

リンク

2016/10/19(Wed) 21:02:20|NO.77200

アプリケーション起動後に数秒「ようこそ」みたいな画面を出力させその後に違う画面に切り替えて操作するようにっしたいのですが
どうすれば良いでしょうか?
時間の使い方がわかりません。



この記事に返信する


MillkeyStars

リンク

2016/10/19(Wed) 21:46:56|NO.77201

1秒は、1000ms である。
1分は、1000ms * 60 である。
1時間は、1000ms * 60 * 60 である。

最小単位に置き換えてみればいい。
21:59:21 に起動されて、5秒後に切り替えするなら 21:59:26 秒だよね。

gettime で 21:59:26 秒になったら切り替えるように監視すればいいだけじゃ?



スペース

リンク

2016/10/19(Wed) 22:12:23|NO.77202

質問を見る限り、HSP初めたばかりでしょうか。
hspエディタでF1を押すとHSP Document Library(HDL)が表示されるのはご存知ですか?
ソースコードの中によくわからない命令が出てきたらこれで調べることをおすすめします。

まず、その動作を実現させるにはいくつか方法があります。
|噂磴waitで止める方法。
メリット:簡単、手軽
デメリット:wait中はほぼ何もできない。(oncmd等のみ。)精度はいまいち

mes "ようこそ" wait 500;5秒待機。単位は10ミリ秒。つまり100で1秒 mes "別の画面のなんやかんや"

短いwait(またはawait)をrepeat loopで何度も実行
メリット:wait中も色々な処理をできる
デメリット:処理が複雑。waitよりawaitのほうが精度は上だがそれでも誤差が出る。

mes "ようこそ" repeat 5000 title "ループ回数はcntというシステム変数に代入される。"+cnt+"" await 1;waitの高性能版。詳しくはHDL参照。単位は1ミリ秒。つまり1000で1秒 loop mes "別の画面のなんやかんや"

PCの起動時間を取得して、その差分から経過時間を測定
メリット:最も高精度。
デメリット:面倒、複雑

#include "winmm.as" mes "ようこそ" timeGetTime:開始時間=stat;取得できる値の単位は1ミリ秒 repeat title "ループ回数はcntというシステム変数に代入される。"+cnt+"" timegettime:現在時間=stat if (現在時間-開始時間)>5000:break;5000ミリ秒経過してたらループを抜ける await 1 loop mes "別の画面のなんやかんや\n"+(現在時間-開始時間)+"ミリ秒経過"

pcが起動している時間を取得する方法について、
以下のページに詳しく載っています。
http://lhsp.s206.xrea.com/hsp_system.html

ちなみにMillkeyStarsさんの方法だと、
59秒あたりに起動すると、秒の位が0に戻るので何かと処理が面倒になります。



Velgail

リンク

2016/10/21(Fri) 08:20:29|NO.77204

ちょっと脱線気味だけどぶっちゃけると

「ようこそ画面」とは、ユーザーに「いま起動してるからそのまま待てや」という為のものです。
つまり、本来的には起動するとすぐにようこそ画面を表示して、裏で立ち上げ作業をして、
完了したらようこそ画面を消して本来のウィンドウを起動するという構造になってます。

なので、本質的には起動処理を走らせて欲しいかあと。
そこで、スペースさんに続きい髻

ようこそ画面を3秒か、それ以上表示するサンプル

await 0//重要 次のawaitの基準時間になる mes "ようこそ" //この間に起動処理を挟む await 3000//3000ms待つ。このとき、前のawait 0から3000msか、3000ms以上起動処理していた場合は3000ms以上ようこそ画面を表示する mes "次の画面"
重要:起動処理の中でawait命令は使ってはいけない。waitが必要であればwait 0を利用すること。



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