Difference between revisions of "LlSetClickAction/ja"

From Second Life Wiki
Jump to navigation Jump to search
(New page: {{LSL_Function/ja |func_id=333|func_sleep=0.0|func_energy=10.0 |func=llSetClickAction |p1_type=integer|p1_name=action|p1_desc=CLICK_ACTION_* フラグ |func_desc=プリム上でタッチ...)
 
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{LSL_Function/ja
{{Issues/VWR-640}}{{Issues/VWR-10829}}{{LSL_Function/ja
|func_id=333|func_sleep=0.0|func_energy=10.0
|func_id=333|func_sleep=0.0|func_energy=10.0
|func=llSetClickAction
|func=llSetClickAction
|p1_type=integer|p1_name=action|p1_desc=CLICK_ACTION_* フラグ
|p1_type=integer|p1_name=action|p1_desc=CLICK_ACTION_* フラグ
|func_desc=プリム上でタッチされたときに機能する動作を設定します。
|func_desc=プリムがクリックされたときに実行されるアクションを設定します (いわゆる [[click action|クリックアクション]]) 。
|func_footnote=マウスカーソルがプリム上にある時に、カーソル画像が動作を反映して画像を切り替えます。
|func_footnote=カーソルがプリムの上にあるとき、カーソルの画像がアクションに応じて変わります。
|caveats
|caveats= *オブジェクトのルートプリムに設定された場合、指定された CLICK_ACTION_* は子プリムにも適用されます。子プリムで {{LSLG/ja|llSetClickAction}} の設定がされていてもです (上書きされます) 。しかし、 (例えば {{LSLG/ja|touch}} の場合) CLICK_ACTION_* がルートプリムに設定されたが、全ての子プリムには設定されていないという場合 ({{LSLG/ja|touch|タッチ系}} {{LSLG/ja|event|イベント}} {{LSLG/ja|script|スクリプト}} がない場合 (これはデフォルトの CLICK_ACTION_TOUCH を作成します)) 、ルートの CLICK_ACTION_* は見えず、クリックしたときに CLICK_ACTION_* が適用されることになります。カーソルの動作と見た目を両方とも正しくするには、 子プリムとルートプリムで CLICK_ACTION_* が一致していなければなりません。
|examples
|examples= これはユーザに行わせる処理に応じて変わるユーザインターフェースを作成するのに良い方法です。<source lang="lsl2">key sitter;
 
list up_up_and_away;
 
CoughsAndLolz()
{
    integer count = 0;
    vector XYZ = llGetPos();
    float X = XYZ.x;
    float Y = XYZ.y;
    do
        up_up_and_away = up_up_and_away + [PRIM_POSITION, <X,Y,4000.0>];
    while((++count) < 400);
}
 
default
{
    state_entry()
    {
        llSetClickAction(CLICK_ACTION_SIT); // state entry では、クリックで座るように設定します
        llSitTarget(<0.0,0.0,0.01>, ZERO_ROTATION);
    }
    changed(integer change)
    {
        if(change & CHANGED_LINK)
        {
            sitter = llAvatarOnSitTarget();
            if(sitter)
            { // 誰かが座っています
                CoughsAndLolz();
                llSetClickAction(CLICK_ACTION_TOUCH);// クリックアクションを変更して、touch_start が起動されるようにします
                llSay(0, "Click me for a thrill");
            }
        }
    }
    touch_start(integer detected)
    {
        if(sitter)
        {
            llSetLinkPrimitiveParams(LINK_SET, up_up_and_away);
            llUnSit(sitter);
            llDie();
        }       
    }         
}</source>
|spec
|spec
|constants=<div id="box">
|constants=<div id="box">
Line 15: Line 59:
! {{!}} フラグ
! {{!}} フラグ
! title="Value" {{!}}
! title="Value" {{!}}
! class="unsortable" {{!}} 解説
! class="unsortable" {{!}} 説明
! class="unsortable" {{!}} アイコン
! class="unsortable" {{!}} アイコン
{{!}}-
{{!}}-
Line 28: Line 72:
{{!}}<!--[[Image:]]-->
{{!}}<!--[[Image:]]-->
{{!}}-
{{!}}-
{{!}}{{LSL Const/ja|CLICK_ACTION_SIT|integer|1|c=プリムがタッチされた時に、アバタがプリムの上に座ります}}
{{!}}{{LSL Const/ja|CLICK_ACTION_SIT|integer|1|c=プリムがタッチされた時に、アバターがプリムの上に座ります}}
{{!}}{{#var:value}}
{{!}}{{#var:value}}
{{!}}{{#var:comment}}
{{!}}{{#var:comment}}
Line 48: Line 92:
{{!}}[[Image:Toolopen.png]]
{{!}}[[Image:Toolopen.png]]
{{!}}-
{{!}}-
{{!}}{{LSL Const/ja|CLICK_ACTION_PLAY|integer|5|c=プリムがタッチされた時に、HTML on PRIMが有効にされます}}
{{!}}{{LSL Const|CLICK_ACTION_PLAY|integer|5|c=タッチで土地のメディアを再生または一時停止します}}
{{!}}{{#var:value}}
{{!}}{{#var:value}}
{{!}}{{#var:comment}}
{{!}}{{#var:comment}}
{{!}}[[Image:Toolplay.png]]
{{!}}[[Image:Toolplay.png]]
{{!}}-
{{!}}-
{{!}}{{LSL Const/ja|CLICK_ACTION_OPEN_MEDIA|integer|6|c=プリムがタッチされた時に、Webメディアダイアログが開かれます}}
{{!}}{{LSL Const/ja|CLICK_ACTION_OPEN_MEDIA|integer|6|c=タッチで土地のメディアを再生します。一時停止はありません}}
{{!}}{{#var:value}}
{{!}}{{#var:value}}
{{!}}{{#var:comment}}
{{!}}{{#var:comment}}
{{!}}[[Image:Toolmediaopen.png]]
{{!}}[[Image:Toolmediaopen.png]]
{{!}}-
{{!}}{{LSL Const/ja|CLICK_ACTION_ZOOM|integer|7|c=ズーム}}
{{!}}{{#var:value}}
{{!}}{{#var:comment}} ([[Viewer_2_Help|ビューワ 2]])
{{!}}[[Image:Toolzoom.png]]
{{!}}}
{{!}}}
</div></div>
</div></div>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llPassTouches/ja|llPassTouches]]}}
|also_functions={{LSL DefineRow||{{LSLG/ja|llPassTouches}}}}
|also_tests
|also_tests
|also_events=
|also_events=
{{LSL DefineRow||[[touch_start/ja|touch_start]]}}
{{LSL DefineRow||{{LSLG/ja|touch_start}}}}
{{LSL DefineRow||[[touch/ja|touch]]}}
{{LSL DefineRow||{{LSLG/ja|touch}}}}
{{LSL DefineRow||[[touch_end/ja|touch_end]]}}
{{LSL DefineRow||{{LSLG/ja|touch_end}}}}
|also_articles={{LSL DefineRow||{{LSLGC/ja|Detected}}}}
|also_articles={{LSL DefineRow||{{LSLGC/ja|Detected}}}}
|notes
|notes={{LSLG/ja|CLICK_ACTION_NONE}} または {{LSLG/ja|CLICK_ACTION_TOUCH}} (デフォルト) 以外を CLICK_ACTION_* フラグに設定すると、スクリプトはプリムがクリックされても {{LSLGC/ja|Touch|タッチ系イベント}} を発生させなくします。
|history=SL 1.19.1(0)で実装。
|history=
* SL クライアント 1.19.1(0) で導入
* [[CLICK_ACTION_ZOOM]] が SL サーバ 1.32 と [[Viewer_2_Help|ビューワ 2]] で追加される
|cat1=Prim
|cat1=Prim
|cat2=Touch
|cat2=Touch
|cat3=Sit
|cat3=Sit
|cat4=Money
|cat4=Money
|cat5=Inventory
|cat5=Media
|cat6=Media
|cat6=Effects
|cat7=Effects
|cat7
|cat8
|cat8
}}
}}

Latest revision as of 13:02, 25 February 2016

要約

関数: llSetClickAction( integer action );

プリムがクリックされたときに実行されるアクションを設定します (いわゆる クリックアクション) 。

• integer action CLICK_ACTION_* フラグ

カーソルがプリムの上にあるとき、カーソルの画像がアクションに応じて変わります。

定数

フラグ 説明 アイコン
CLICK_ACTION_NONE 0 標準動作の機能:プリムがタッチされた時に、タッチイベントが作動します
CLICK_ACTION_TOUCH 0 プリムがタッチされた時に、タッチイベントが作動します
CLICK_ACTION_SIT 1 プリムがタッチされた時に、アバターがプリムの上に座ります Toolsit.png
CLICK_ACTION_BUY 2 プリムがタッチされた時に、購入ダイアログが開かれます Toolbuy.png
CLICK_ACTION_PAY 3 プリムがタッチされた時に、支払いダイアログが開かれます Toolpay.png
CLICK_ACTION_OPEN 4 プリムがタッチされた時に、オブジェクトのインベントリのダイアログが開かれます Toolopen.png
CLICK_ACTION_PLAY 5 タッチで土地のメディアを再生または一時停止します Toolplay.png
CLICK_ACTION_OPEN_MEDIA 6 タッチで土地のメディアを再生します。一時停止はありません Toolmediaopen.png
CLICK_ACTION_ZOOM 7 ズーム (ビューワ 2) Toolzoom.png

警告

  • オブジェクトのルートプリムに設定された場合、指定された CLICK_ACTION_* は子プリムにも適用されます。子プリムで llSetClickAction の設定がされていてもです (上書きされます) 。しかし、 (例えば touch の場合) CLICK_ACTION_* がルートプリムに設定されたが、全ての子プリムには設定されていないという場合 (タッチ系 イベント スクリプト がない場合 (これはデフォルトの CLICK_ACTION_TOUCH を作成します)) 、ルートの CLICK_ACTION_* は見えず、クリックしたときに CLICK_ACTION_* が適用されることになります。カーソルの動作と見た目を両方とも正しくするには、 子プリムとルートプリムで CLICK_ACTION_* が一致していなければなりません。

サンプル

これはユーザに行わせる処理に応じて変わるユーザインターフェースを作成するのに良い方法です。
key sitter;

list up_up_and_away;

CoughsAndLolz()
{
    integer count = 0;
    vector XYZ = llGetPos();
    float X = XYZ.x;
    float Y = XYZ.y;
    do
        up_up_and_away = up_up_and_away + [PRIM_POSITION, <X,Y,4000.0>];
    while((++count) < 400);
}

default
{
    state_entry()
    {
        llSetClickAction(CLICK_ACTION_SIT); // state entry では、クリックで座るように設定します
        llSitTarget(<0.0,0.0,0.01>, ZERO_ROTATION);
    }
    changed(integer change)
    {
        if(change & CHANGED_LINK)
        {
            sitter = llAvatarOnSitTarget();
            if(sitter)
            { // 誰かが座っています
                CoughsAndLolz();
                llSetClickAction(CLICK_ACTION_TOUCH);// クリックアクションを変更して、touch_start が起動されるようにします
                llSay(0, "Click me for a thrill");
            }
        }
    }
    touch_start(integer detected)
    {
        if(sitter)
        {
            llSetLinkPrimitiveParams(LINK_SET, up_up_and_away);
            llUnSit(sitter);
            llDie();
        }        
    }           
}

注意点

CLICK_ACTION_NONE または CLICK_ACTION_TOUCH (デフォルト) 以外を CLICK_ACTION_* フラグに設定すると、スクリプトはプリムがクリックされても タッチ系イベント を発生させなくします。

関連項目

イベント

•  touch_start
•  touch
•  touch_end

関数

•  llPassTouches

記事

•  検出

特記事項

経緯

All Issues

~ Search JIRA for related Issues
   Shift-drag to copy object does not copy all settings
   Linux Viewer: CLICK_ACTION_PAY shows CLICK_ACTION_PLAY icon

Signature

function void llSetClickAction( integer action );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。