Discuss Scratch

mochimochiking
Scratcher
1000+ posts

scratch2.0の提案

inoking wrote:

nankin wrote:

inoking wrote:

調べるカテゴリ
(マウスホイールの速さ ::sensing)
↑「マウスホイールの速さ」とはホイールの delta(ユーザーがマウスホイールを 1 目盛り回すごとにスクロールする行数)のことですか?
それ以前にホイールイベントを取得することができないのでその提案のほうが先ではないですか?
マウスホイールの動きは
[上向き矢印キー v] キーが押されたとき
[下向き矢印キー v] キーが押されたとき
で取得可能です。
Edge, Chrome で実験してみましたが「イベント」、「調べる」どちらについてもホイールには反応しませんでした。
ソースにもそれらしい記述はないです。
My browser / operating system: Windows NT 10.0, Chrome 46.0.2486.0, Flash 26.0 (release 0) ←Edge
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ←Chrome
こちらでは反応しました。
ウェブブラウザとFlashのバージョンは同じですから、OSの違いでしょうか。
My browser / operating system: Windows 7, Chrome 59.0.3071.115, Flash 26.0 (release 0)
CommandSlash017
Scratcher
500+ posts

scratch2.0の提案

mochimochiking wrote:

inoking wrote:

nankin wrote:

inoking wrote:

調べるカテゴリ
(マウスホイールの速さ ::sensing)
↑「マウスホイールの速さ」とはホイールの delta(ユーザーがマウスホイールを 1 目盛り回すごとにスクロールする行数)のことですか?
それ以前にホイールイベントを取得することができないのでその提案のほうが先ではないですか?
マウスホイールの動きは
[上向き矢印キー v] キーが押されたとき
[下向き矢印キー v] キーが押されたとき
で取得可能です。
Edge, Chrome で実験してみましたが「イベント」、「調べる」どちらについてもホイールには反応しませんでした。
ソースにもそれらしい記述はないです。
My browser / operating system: Windows NT 10.0, Chrome 46.0.2486.0, Flash 26.0 (release 0) ←Edge
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ←Chrome
こちらでは反応しました。
ウェブブラウザとFlashのバージョンは同じですから、OSの違いでしょうか。
My browser / operating system: Windows 7, Chrome 59.0.3071.115, Flash 26.0 (release 0)
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ですが反応します。
nankin
Scratcher
500+ posts

scratch2.0の提案

CommandSlash017 wrote:

mochimochiking wrote:

inoking wrote:

nankin wrote:

inoking wrote:

調べるカテゴリ
(マウスホイールの速さ ::sensing)
↑「マウスホイールの速さ」とはホイールの delta(ユーザーがマウスホイールを 1 目盛り回すごとにスクロールする行数)のことですか?
それ以前にホイールイベントを取得することができないのでその提案のほうが先ではないですか?
マウスホイールの動きは
[上向き矢印キー v] キーが押されたとき
[下向き矢印キー v] キーが押されたとき
で取得可能です。
Edge, Chrome で実験してみましたが「イベント」、「調べる」どちらについてもホイールには反応しませんでした。
ソースにもそれらしい記述はないです。
My browser / operating system: Windows NT 10.0, Chrome 46.0.2486.0, Flash 26.0 (release 0) ←Edge
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ←Chrome
こちらでは反応しました。
ウェブブラウザとFlashのバージョンは同じですから、OSの違いでしょうか。
My browser / operating system: Windows 7, Chrome 59.0.3071.115, Flash 26.0 (release 0)
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ですが反応します。
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) 僕も反応します。(「調べる」カテゴリのブロックでは反応しません)
horamoon
Scratcher
500+ posts

scratch2.0の提案

inoking wrote:

演算カテゴリ
<<> かつ <> かつ <> ::operators>//かつブロックの引数多数化
<<> かつ <>>
の入れ子で十分では?「または」や「ではない」との混合もあるので多数化は余計と思います。
これについてだけははっきりとお答えできるのでこの質問に絞って答えさせていただきます。
たとえばかつブロックをたくさん使う時などはよくあるとおもいます。
そのときにかつぶろっくを二重三重にすると重くなります。
Scratchをしている人にはスペックの低いPCをお使いの学生等もいると思います。
なのでかつの個数を調整できるようにしてほしいのです。(できればまたはなども。)
masa2004
Scratcher
1000+ posts

scratch2.0の提案

horamoon wrote:

たとえばかつブロックをたくさん使う時などはよくあるとおもいます。
そのときにかつぶろっくを二重三重にすると重くなります。
Scratchをしている人にはスペックの低いPCをお使いの学生等もいると思います。
そういう場合はオフラインエディターなどの利用をおすすめします。また、3.0は2.0と違いflashを使わずで軽いようなので、3.0を待つのも手ではないでしょうか。

Last edited by masa2004 (Aug. 7, 2017 11:39:42)

inoking
Scratcher
1000+ posts

scratch2.0の提案

マウスホイールの検出について検証用プロジェクトを共有しました。
https://scratch-mit-edu.ezproxyberklee.flo.org/projects/170610767/

再確認したところ、
Chrome, Firefox ではイベントのみ反応しました。
IE では最大化時のイベントのみ反応しました。
Edge では反応しませんでした。

My browser / operating system: Windows NT 10.0, Chrome 46.0.2486.0, Flash 26.0 (release 0) ←Edge(反応せず)
My browser / operating system: Windows NT 10.0, Microsoft Internet Explorer 11.0, Flash 26.0 (release 0) ←IE(最大化時のイベントのみ反応)
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ←Chrome(イベントのみ反応)
My browser / operating system: Windows NT 10.0, Firefox 54.0, Flash 25.0 (release 0) ←Firefox(イベントのみ反応)

追記:
ソースの記述を見つけました。確かにイベントからは呼ばれているようです。
src/ui/parts/StagePart.as:
public function StagePart(app:Scratch) {
	...
	addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheel);
	...
}
...
private function mouseWheel(evt:MouseEvent):void {
	evt.preventDefault();
	app.runtime.startKeyHats(evt.delta > 0 ? 30 : 31);
}

Last edited by inoking (Aug. 7, 2017 17:01:32)

inoking
Scratcher
1000+ posts

scratch2.0の提案

masa2004 wrote:

horamoon wrote:

たとえばかつブロックをたくさん使う時などはよくあるとおもいます。
そのときにかつぶろっくを二重三重にすると重くなります。
Scratchをしている人にはスペックの低いPCをお使いの学生等もいると思います。
そういう場合はオフラインエディターなどの利用をおすすめします。また、3.0は2.0と違いflashを使わずで軽いようなので、3.0を待つのも手ではないでしょうか。
引数を多数化したときの検証はできないのですが、
参考までに
「かつ」を入れ子にした場合と「もし でなければ」で表現した場合とを比較してみました。
条件式の評価時間

結果、
「もし でなければ」で表現した場合のほうがかなり速いです。
ただし、「かつ」が偽になったときの処理を複数箇所に書かないといけないという問題はあります。

副産物として分かったことですが
「かつ」を入れ子にする場合でも
入れ子は文の後方(右側)に集めたほうが少し速いようです。


これは
(評価式が複数ある場合は、真偽が確定した場合それ以降の評価式を評価しないので)
入れ子の評価式をできるだけ後方にもっていくことで
入れ子を評価する機会を減らせるためと考えられます。


というわけで
引数の多数化については高速化の点で若干のメリットは見込めます。
しかし、
特定の需要に特化した感はあります。
重くなるほど多重化するなら評価方法の見直しで改善できるかもしれません。

phosphorus ではこの辺の差異は出ていませんし
Scratch 3.0 での改善に期待したいところです。
Yuichiro_
Scratcher
100+ posts

scratch2.0の提案

inoking wrote:

マウスホイールの検出について検証用プロジェクトを共有しました。
https://scratch-mit-edu.ezproxyberklee.flo.org/projects/170610767/

再確認したところ、
Chrome, Firefox ではイベントのみ反応しました。
IE では最大化時のイベントのみ反応しました。
Edge では反応しませんでした。

My browser / operating system: Windows NT 10.0, Chrome 46.0.2486.0, Flash 26.0 (release 0) ←Edge(反応せず)
My browser / operating system: Windows NT 10.0, Microsoft Internet Explorer 11.0, Flash 26.0 (release 0) ←IE(最大化時のイベントのみ反応)
My browser / operating system: Windows NT 10.0, Chrome 59.0.3071.115, Flash 26.0 (release 0) ←Chrome(イベントのみ反応)
My browser / operating system: Windows NT 10.0, Firefox 54.0, Flash 25.0 (release 0) ←Firefox(イベントのみ反応)
以下略
Edgeですが、中を見ている状態と大画面の状態でのみ反応しました。
My browser / operating system: Windows NT 10.0, Chrome 52.0.2743.116, Flash 26.0 (release 0)
mochimochiking
Scratcher
1000+ posts

scratch2.0の提案

nankin wrote:

コスチュームを ((1) + (0)) にする
1番目のコスチュームになる

コスチュームを ((1) 番目\( ((1) + (0)) \)の文字) にする
1という名前のコスチュームになる
この区別を分かりやすくしてほしい。
inoking
Scratcher
1000+ posts

scratch2.0の提案

mochimochiking wrote:

nankin wrote:

コスチュームを ((1) + (0)) にする
1番目のコスチュームになる

コスチュームを ((1) 番目\( ((1) + (0)) \)の文字) にする
1という名前のコスチュームになる
この区別を分かりやすくしてほしい。
どのように区別したいのですか?
fine316
Scratcher
1000+ posts

scratch2.0の提案

inoking wrote:

mochimochiking wrote:

nankin wrote:

コスチュームを ((1) + (0)) にする
1番目のコスチュームになる

コスチュームを ((1) 番目\( ((1) + (0)) \)の文字) にする
1という名前のコスチュームになる
この区別を分かりやすくしてほしい。
どのように区別したいのですか?
例えば、
コスチュームを [ v] にする

()番目のコスチュームにする::looks
のような感じでしょうか。
apple502j
Scratcher
1000+ posts

scratch2.0の提案

fine316 wrote:

inoking wrote:

mochimochiking wrote:

nankin wrote:

コスチュームを ((1) + (0)) にする
1番目のコスチュームになる

コスチュームを ((1) 番目\( ((1) + (0)) \)の文字) にする
1という名前のコスチュームになる
この区別を分かりやすくしてほしい。
どのように区別したいのですか?
例えば、
コスチュームを [ v] にする

()番目のコスチュームにする::looks
のような感じでしょうか。
キャストの規則ですね。
数値は数値、文字列ブロックでは文字列ということになります。
そういうことなら、過去の提案の
([文字列]::operators)
が役立ちそうですね。
fine316
Scratcher
1000+ posts

scratch2.0の提案

apple502j wrote:

fine316 wrote:

inoking wrote:

mochimochiking wrote:

nankin wrote:

コスチュームを ((1) + (0)) にする
1番目のコスチュームになる

コスチュームを ((1) 番目\( ((1) + (0)) \)の文字) にする
1という名前のコスチュームになる
この区別を分かりやすくしてほしい。
どのように区別したいのですか?
例えば、
コスチュームを [ v] にする

()番目のコスチュームにする::looks
のような感じでしょうか。
キャストの規則ですね。
数値は数値、文字列ブロックでは文字列ということになります。
そういうことなら、過去の提案の
([文字列]::operators)
が役立ちそうですね。
話がそれますが、
([文字列]::operators)
って触りにくい(ドラッグしにくい)気がします。
([] と [])
で十分ではないでしょうか。
nankin
Scratcher
500+ posts

scratch2.0の提案

ドラッグしにくいといえば、演算ブロックが

このようにたくさんつながったときに非常に動かしづらいです。

(() + (0))
これが
( () + (0))
こんな感じで左側にスペースがあると格段に動かしやすくなるのではないでしょうか。
nankin
Scratcher
500+ posts

scratch2.0の提案


Modして作ってみました。
さすがにここまで広くはなくていいと思いますが…
mikikoii
Scratcher
1000+ posts

scratch2.0の提案

nankin wrote:

ドラッグしにくいといえば、演算ブロックが

このようにたくさんつながったときに非常に動かしづらいです。

(() + (0))
これが
( () + (0) )
こんな感じで左側にスペースがあると格段に動かしやすくなるのではないでしょうか。
このようになってると自然な気がします。
horamoon
Scratcher
500+ posts

scratch2.0の提案

3.0だと非常に動かしやすいですよ。
nankin
Scratcher
500+ posts

scratch2.0の提案

horamoon wrote:

3.0だと非常に動かしやすいですよ。
そこまで変わらないと思うんですが…
スペースがあるとブロックをクリックする場所がわかりやすいという利点もあります。

Last edited by nankin (Aug. 9, 2017 09:19:19)

inoking
Scratcher
1000+ posts

scratch2.0の提案

nankin wrote:

ドラッグしにくいといえば、演算ブロックが
~略~
このようにたくさんつながったときに非常に動かしづらいです。

(() + (0))
これが
( () + (0))
こんな感じで左側にスペースがあると格段に動かしやすくなるのではないでしょうか。
演算子(+)の部分をつかめば問題ないと思いますよ。
inoking
Scratcher
1000+ posts

scratch2.0の提案

マウスホイールの検出についてですが
よく考えると、ホイールはキーと違い、回したその瞬間にしか状態が変化しないのでイベントでしか拾いようがないですね。
それはよしとして
うまく検出できないことがあるということが、ホイールの検出が公になっていない理由かもしれません。

提案としては以下でしょうか。
[マウスホイール上 v] が押されたとき :: events :: hat //矢印キーとは別にする
(マウスホイールの移動量 :: sensing)

Powered by DjangoBB