Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. ์‹œ์ž‘ํ•˜๊ธฐ

    • Step 1 = Set Up

      • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ

        • W Player API lib๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.

      • Web Author์—์„œ ์›น ์ฝ˜ํ…์ธ  ์†์„ฑ ์„ค์ •ํ•˜๊ธฐ

    • Step 2 = Code ์ž‘์„ฑ

      • ์ œ๊ณต๋˜๋Š” W Player API๋กœ ๋‹ค์–‘ํ•œ ์‘์šฉ ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ ๊ตฌํ˜„์šฉ code๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ '์ฝ”๋“œ ์˜ˆ์ œ' ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

    • Step 3 = ์—…๋กœ๋“œ ๋ฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(Preview) (UDP ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํฌํ•จ)

    • Step 4 = ์Šค์ผ€์ค„ ๋ฐฐํฌ(๋กœ๊ทธ ์ˆ˜์ง‘) ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ

  2. W Player API Reference

    $wp

    $wp๋Š” W Player API์˜ ๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค (content, device, local, utility, callback)๋ฅผ ํฌํ•จํ•˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค(Namespace)์ž…๋‹ˆ๋‹ค.

      • Anchor
        setDefaultCallback()
        setDefaultCallback()
        setDefaultCallback()

          • ์„ค๋ช…: W Player๋กœ๋ถ€ํ„ฐ ์ด๋ฒคํŠธ(Event)๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฆฌ์Šค๋„ˆ(Listener)๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Life cycle์— ๋Œ€ํ•œ ์ƒํƒœ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ดˆ๊ธฐ ์ƒ์„ฑ ๋‹จ๊ณ„์— ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
          • ๊ตฌ๋ฌธ: function setDefaultCallback (myFunction(object));
          • ํŒŒ๋ผ๋ฏธํ„ฐ: myFunction(object): ์ด๋ฒคํŠธ(Event)๋Š” ์ฝœ๋ฐฑ(Callback)์„ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด(Object) ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

            Code Block
            { 
                      type: 'state',
                      sub: 'ready',
                      data: {
                                /* user_data object */
                      }
                      name: 'name of Web Content element',
                      pageId: 'id'
            }

            ํŽ˜์ด์ง€(Page) ๋‚ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๋กœ๋“œ(Load)ํ•˜๋ฉด ์‘์šฉ ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ๊ฐ€ W Player API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์ ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์‘์šฉ ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ๋Š” iframe ํ˜•ํƒœ๋กœ ๋กœ๋“œ(Load)ํ•˜๋ฉฐ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์ „
            ์ƒํƒœ(Back Page Layer, ํ˜„์žฌ ํ™”๋ฉด์—๋Š” ์ด์ „ ์ฝ˜ํ…์ธ ๋ฅผ ์žฌ์ƒํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ)์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


            Code Block
            data: {
                /* user_data object */
              }

            user_data๋Š” ready ์ƒํƒœ์—์„œ ์ดˆ๊ธฐํ™”์— ์ด์šฉ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. (user_data๋Š” getProperty ๋ฅผ ํ†ตํ•ด์„œ๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)


            Code Block
            { 
                      type: 'state',
                      sub: 'play',
                      name: 'name of Web Content element',
                      pageId: 'id'
            }

            ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์‹œ์ (Front Page layer)์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.


            Code Block
            { 
                      type: 'state',
                      sub: 'pageChanged',
                      data: 'name of changed page',
                      name: 'name of Web Content element',
                      pageId: 'id'
            }

            ์žฌ์ƒ ์ค‘ ํŽ˜์ด์ง€ (Page)๊ฐ€ ์ „ํ™˜๋˜๋Š” ์‹œ์ ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.(๋‹จ, ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ๊ณตํ†ต ํŽ˜์ด์ง€์— ์†ํ•ด ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.)

            data๋กœ ์ „๋‹ฌ๋˜๋Š” pageName ์„ ํ†ตํ•ด ์–ด๋–ค page ๊ฐ€ ์ „ํ™˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.


            Code Block
            { 
                      type: 'state',
                      sub: 'stop',
                      name: 'name of Web Content element',
                      pageId: 'id'
            }

            ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „ ์‹œ์ ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ ๋‚ด์— ์‚ฌ์šฉ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: clearInterval, clearTimeout, $wp = null)

            โ€ป ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐœ์ƒ์œผ๋กœ W Player ์žฌ์ƒ์ด ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


            Code Block
            { 
                      type: 'error',
                      sub: 'name of error api',
                      data: {
                                /* custom error object */
                      }
            }

            W Player API ์‹คํ–‰ ์˜ค๋ฅ˜ ๋˜๋Š” ๊ธฐํƒ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

            ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” error object๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


            Code Block
            { 
                      type: 'udp',
                      sub: 'number of udp port',
                      data: 'received data string from udp port'
            }

            UDP๋กœ data๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

            Port ๋“ฑ์˜ ์„ค์ •์€ Web Author์—์„œ ์ €์ž‘ ์‹œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


            Code Block
            { 
                      type: 'datalink',
                      sub: 'name of datalink table',
                      data: {
                                /* data of datalink table */
                      }
            }

            Datalink์—์„œ data๊ฐ€ ์ „๋‹ฌ๋˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

            Datalink ์ •๋ณด์— ๋Œ€ํ•œ ์„ค์ •์€ Web Author์—์„œ ์ €์ž‘ ์‹œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


    $wp.content

    ์ด ์ธํ„ฐํŽ˜์ด์Šค(Interface)๋Š” W Player์—์„œ ํ˜„์žฌ ๋กœ๋“œ(Load)๋œ ํŽ˜์ด์ง€(Page) ๋ฐ ์š”์†Œ(Element)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ API๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • getPage()

      • ์„ค๋ช…

        ํŽ˜์ด์ง€ ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด(return)ํ•ฉ๋‹ˆ๋‹ค.

        ์ƒํƒœ ์ด๋ฒคํŠธ์—์„œ ์ „๋‹ฌํ•œ id๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅํ•˜์—ฌ ํ˜„์žฌ ์ž์‹ ์ด ์†ํ•ด ์žˆ๋Š” ํŽ˜์ด์ง€(Page) ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ ๋ฐ›์Šต๋‹ˆ๋‹ค.

        getElement() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€์— ๋กœ๋“œ๋œ element๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function getPage(โ€˜pageIdโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ

        pageId: State ์—์„œ ์ „๋‹ฌ๋œ id ๊ฐ’

      • ๋ฐ˜ํ™˜๊ฐ’

        ์„ฑ๊ณต: Page ๊ฐ์ฒด, ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

      • ์ œํ•œ ์‚ฌํ•ญ

        id ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋ฉด, ํ˜„์žฌ ํ™”๋ฉด์— ์žฌ์ƒ๋˜๋Š” page ๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

      • ์ฝ”๋“œ ์˜ˆ์ œ

        $wp.content.getPage(โ€˜pageIdโ€™);

      • ๊ธฐํƒ€

        $wp.content.getPage(); (id ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ํ™”๋ฉด์— ์žฌ์ƒ๋˜๋Š” page ๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.)

    • setProperty()

      • ์„ค๋ช…: ํŽ˜์ด์ง€์˜ ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function setProperty (โ€˜nameโ€™,โ€™valueโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ:

        name: ์†์„ฑ๋ช…

        value: ์†์„ฑ๊ฐ’

        name

        value

        ์œ ํ˜•์„ค๋ช…

        background-color

        color

        value: "rgba(0, 0, 0, 1)"

      • ๋ฐ˜ํ™˜๊ฐ’:

        Type : bool

        API ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ : true

        API ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ : false

      • ์ œํ•œ ์‚ฌํ•ญ:

        ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ(ํŒŒ๋ผ๋ฏธํ„ฐ์˜ Table์— ์ž‘์„ฑ๋˜์ง€ ์•Š์€ property)์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ, W Player ์žฌ์ƒ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ์ฝ”๋“œ ์˜ˆ์ œ:

        $wp.content.getPage(pageId).setProperty('background-color', โ€œrgba(255, 0, 0, 1)โ€));

    • getProperty()

      • ์„ค๋ช…: ํŽ˜์ด์ง€์˜ ์†์„ฑ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function setProperty (โ€˜nameโ€™,โ€™valueโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ:

        name: ์†์„ฑ๋ช…

        name

        ๋ฐ˜ํ™˜๊ฐ’

        ์œ ํ˜•์„ค๋ช…

        name

        string

        string

        background-color

        color

        value: "rgba(0, 0, 0, 1)"

      • ๋ฐ˜ํ™˜๊ฐ’

        Type : ์œ„์˜ ํ‘œ ์ฐธ๊ณ 

        API ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ : ์ •์ƒ๊ฐ’

        API ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ : undefined

      • ์ฝ”๋“œ ์˜ˆ์ œ: $wp.content.getPage(pageId).getProperty('background-color');

    • getGlobalPage()

      • ์„ค๋ช…: ๊ณตํ†ต ํŽ˜์ด์ง€ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ์ด๋ฒคํŠธ์—์„œ ์ „๋‹ฌ๋œ id๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅํ•ด ์ž์‹ ์ด ์†ํ•œ ๊ณตํ†ต ํŽ˜์ด์ง€๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์Šต๋‹ˆ๋‹ค.

        getElement() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ณตํ†ต ํŽ˜์ด์ง€์— ๋กœ๋“œ๋œ element๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function getGlobalPage(โ€˜pageIdโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ:

        pageId: ์ƒํƒœ ์ด๋ฒคํŠธ์—์„œ ์ „๋‹ฌ๋œ id ๊ฐ’

      • ๋ฐ˜ํ™˜๊ฐ’

        ์„ฑ๊ณต: ํ˜„์žฌ์˜ ๊ธ€๋กœ๋ฒŒ ํŽ˜์ด์ง€ ๊ฐ์ฒด

        ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

      • ์ œํ•œ ์‚ฌํ•ญ: getPage() API์™€ ๋‹ฌ๋ฆฌ ์†์„ฑ ๊ด€๋ จ ๊ธฐ๋Šฅ์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

      • ์ฝ”๋“œ ์˜ˆ์ œ: $wp.content.getGlobalPage(pageId);

    • getElement()

      • ์„ค๋ช…: ํŽ˜์ด์ง€๋กœ๋ถ€ํ„ฐ name ๊ฐ’์„ ๊ฐ–๋Š” element ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

        ๊ฐ element๊ฐ€ ์ œ๊ณตํ•˜๋Š” API๋ฅผ ํ†ตํ•ด element๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function getElement(โ€˜nameโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ: name: element name

        Info
        title์ฐธ๊ณ 

        ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ Web Author layer Window

      • ๋ฐ˜ํ™˜๊ฐ’: function getElement(โ€˜nameโ€™);

        ์„ฑ๊ณต: ํ˜„์žฌ์˜ ๊ธ€๋กœ๋ฒŒ ํŽ˜์ด์ง€ ๊ฐ์ฒด

        ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

      • ์ฝ”๋“œ ์˜ˆ์ œ: $wp.content.getPage(pageId).getElement(โ€˜Text1โ€™);

    • setProperty()

      • ์„ค๋ช…: Element์˜ ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. element๋งˆ๋‹ค ์ง€์›๋˜๋Š” ์†์„ฑ์€ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function setProperty (โ€˜nameโ€™,โ€™valueโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ:

        name: ์†์„ฑ๋ช…

        value: ์†์„ฑ๊ฐ’

        ์ง€์› element

        name

        value

        ์œ ํ˜•์„ค๋ช…

        common (๋‹จ, video element๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Œ)

        width

        number

        value ๋‹จ์œ„: px

        height

        number

        value ๋‹จ์œ„: px

        left

        number

        value ๋‹จ์œ„: px

        top

        number

        value ๋‹จ์œ„: px

        visibility

        string

        value: "visible,hidden"

        opacity

        number

        value: 0.0~1.0

        rotation

        number

        value: 0~360

        size

        Object

        {width: 0, height: 0}

        position

        Object

        {left: 0, top: 0}

        image

        flip-x

        boolean

        -

        flip-y

        boolean

        -

        source

        string

        file ์ ˆ๋Œ€ ๊ฒฝ๋กœ(getRootDirectory()๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

        flip

        Object

        valueObject = {x: false, y: false}

        video

        source

        string

        file ์ ˆ๋Œ€ ๊ฒฝ๋กœ(getRootDirectory()๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

        text

        font-size

        number

        value: font size

        font-variant

        string

        value: normal, small-caps

        font-color

        color

        value: "rgba(0, 0, 0, 1)"

        background-color

        color

        value: "rgba(0, 0, 0, 1)"

        font-weight

        string

        value: normal, bold

        font-style

        string

        value: normal, italic

        text-decoration

        string

        value: none, line-through, underline

        letter-spacing

        number

        value ๋‹จ์œ„: 'px' (0-50)

        horizontal-align

        string

        value: left,right,center

        vertical-align

        string

        value: top,middle,bottom

        text

        string

        string

      • ๋ฐ˜ํ™˜๊ฐ’:

        Type: bool

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ: true

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ: false

      • ์ œํ•œ ์‚ฌํ•ญ:

        ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ(ํŒŒ๋ผ๋ฏธํ„ฐ์˜ Table์— ์ž‘์„ฑ๋˜์ง€ ์•Š์€ property)์„ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ, W Player ์žฌ์ƒ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ์ฝ”๋“œ ์˜ˆ์ œ: $wp.content.getPage(pageId).getElement(โ€˜Text1โ€™).setProperty(โ€˜textโ€™, โ€˜Test Text!โ€™);

      • ๊ธฐํƒ€

        Image/Video ์š”์†Œ - Source ์†์„ฑ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        var imagePath = $wp.local.getRootDirectory() + โ€œ/testImage.pngโ€;

        ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ $wp.local. getRootDirectory();

        $wp.content.getPage(pageId).getElement(โ€˜Image1โ€™).setProperty(โ€˜sourceโ€™, imagePath);

    • getProperty()

      • ์„ค๋ช…: Element์˜ ์†์„ฑ์„ ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function getProperty (โ€˜nameโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ

        name: ์†์„ฑ๋ช…

        ์ง€์› element

        name

        ๋ฐ˜ํ™˜๊ฐ’

        ์œ ํ˜•์„ค๋ช…

        common (๋‹จ, video element๋Š” Lock์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Œ)

        width

        number

        value ๋‹จ์œ„: px

        height

        number

        value ๋‹จ์œ„: px

        left

        number

        value ๋‹จ์œ„: px

        top

        number

        value ๋‹จ์œ„: px

        visibility

        string

        value: "visible,hidden"

        opacity

        number

        value: 0.0~1.0

        rotation

        number

        value: 0~360

        size

        Object

        {width: 0, height: 0}

        position

        Object

        {left: 0, top: 0}

        lock-position-size

        boolean

        -

        lock-design

        boolean

        -

        lock-content

        boolean

        -

        image

        flip-x

        boolean

        -

        flip-y

        boolean

        -

        source

        string

        file ์ ˆ๋Œ€ ๊ฒฝ๋กœ

        flip

        Object

        {x: false, y: false}

        video

        source

        string

        file ์ ˆ๋Œ€ ๊ฒฝ๋กœ

        web content

        user-data

        Object

        {"key","value"}

        text

        font-size

        number

        value: font size

        font-variant

        string

        value: normal, small-caps

        font-color

        color

        value: "rgba(0, 0, 0, 1)"

        background-color

        color

        value: "rgba(0, 0, 0, 1)"

        font-weight

        string

        value: normal, bold

        font-style

        string

        value: normal, italic

        text-decoration

        string

        value: none, line-through, underline

        letter-spacing

        number

        value ๋‹จ์œ„: 'px' (0-50)

        horizontal-align

        string

        value: left,right,center

        vertical-align

        string

        value: top,middle,bottom

        text

        string

        string

      • ๋ฐ˜ํ™˜๊ฐ’

        Type: ์œ„ ํ‘œ ์ฐธ๊ณ 

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ: ์ •์ƒ๊ฐ’

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ: undefined: function getProperty (โ€˜nameโ€™);

      • ์ฝ”๋“œ ์˜ˆ์ œ: $wp.content.getPage(pageId).getElement(โ€˜Text1โ€™).getProperty(โ€˜textโ€™);

    • addEventListener()

      • ์„ค๋ช…: ํ˜„์žฌ ์žฌ์ƒ๋˜๊ณ  ์žˆ๋Š” ์š”์†Œ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ๋ฆฌ์Šค๋„ˆ(Listener)๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function addEventListener(type,myFunction);

      • ํŒŒ๋ผ๋ฏธํ„ฐ

        type: โ€˜clickโ€™ (click๋งŒ ์ง€์›ํ•จ)

        myFunction: callback function

      • ๋ฐ˜ํ™˜๊ฐ’

        Type: bool

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ: true

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ: false

      • ์ œํ•œ ์‚ฌํ•ญ

        Type์œผ๋กœ๋Š” click๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

        ์ง€์› ์š”์†Œ: ์ด๋ฏธ์ง€, ๋น„๋””์˜ค, ํ…์ŠคํŠธ, ์Šคํ‹ฐ์ปค , ๋„ํ˜•

        Click ์˜์—ญ: ์š”์†Œ ์˜์—ญ์˜ ์ตœ์™ธ๊ณฝ ์‚ฌ๊ฐํ˜• ์˜์—ญ์ž…๋‹ˆ๋‹ค. (๋‹จ, ๋„ํ˜• ์š”์†Œ๋Š” ๋„ํ˜• ๋ชจ์–‘ ์™ธ๊ณฝ ๊ธฐ์ค€)

      • ์ฝ”๋“œ ์˜ˆ์ œ

        $wp.content.getPage(pageId).getElement(โ€˜Text1โ€™). addEventListener(โ€˜clickโ€™,myFunction);

    • getPropertyType()

      • ์„ค๋ช…: ์ฝ˜ํ…์ธ  ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์†์„ฑ๋“ค์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        ์†์„ฑ๋ช…

        ๋ฐ˜ํ™˜๊ฐ’

        WIDTH

        'width'

        HEIGHT

        'height'

        LEFT

        'left'

        TOP

        'top'

        VISIBILITY

        'visibility'

        OPACITY

        'opacity'

        ROTATION

        'rotation'

        SIZE

        'size'

        POSITION

        'position'

        FLIP_X

        'flip-x'

        FLIP_Y

        'flip-y'

        SOURCE

        'source'

        FLIP

        'flip'

        FONTFAMILY

        'font-family'

        FONTSIZE

        'font-size'

        FONTVARIANT

        'font-variant'

        FONTCOLOR

        'font-color'

        BACKGROUNDCOLOR

        'background-color'

        FONTWEIGHT

        'font-weight'

        FONTSTYLE

        'font-style'

        TEXTDECORATION

        'text-decoration'

        LETTERSPACING

        'letter-spacing'

        HORIZONTALALIGN

        'horizontal-align'

        VERTICALALIGN

        'vertical-align'

        TEXT

        'text'

        LOCKPOSITIONANDSIZE

        'lock-position-size'

        LOCKDESIGN

        'lock-design'

        LOCKCONTENT

        'lock-content'

        NAME

        'name'

        USERDATA

        'user-data'

      • ๊ตฌ๋ฌธ: function getPropertyType();

      • ํŒŒ๋ผ๋ฏธํ„ฐ: none

      • ๋ฐ˜ํ™˜๊ฐ’

        ์„ฑ๊ณต: object (์†์„ฑ๋ช…), ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

      • ์ฝ”๋“œ์˜ˆ์ œ

        $wp.content.getPropertyType();

      • ๊ธฐํƒ€

        $wp.content.getPropertyType();๋กœ๋ถ€ํ„ฐ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜ํ™”ํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์˜คํƒ€ ๋ฐฉ์ง€ ๋“ฑ์˜ ํŽธ๋ฆฌํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

        var contentPropertyType = $wp.content.getPropertyType();

        $wp.content.getPage().getElement('Text1').setProperty(contentPropertyType.TEXT, โ€œTESTโ€);

    • movePage ()

      • ์„ค๋ช…: ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•ด ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค.

      • ๊ตฌ๋ฌธ: function movePage(โ€˜pageNameโ€™);

      • ํŒŒ๋ผ๋ฏธํ„ฐ

        page name

      • ๋ฐ˜ํ™˜๊ฐ’

        Type: bool

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ: true

        API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ: false

      • ์ œํ•œ ์‚ฌํ•ญ

        movePage() API๋Š” ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ๊ณตํ†ต ํŽ˜์ด์ง€์—์„œ ๋™์ž‘๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ •์ƒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

        ์ผ๋ฐ˜ ํŽ˜์ด์ง€์— ์œ„์น˜ํ•œ HTML ์š”์†Œ์—์„œ movePage api๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ด๋™ ์žฌ์ƒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด HTML ์š”์†Œ๋Š” ๋” ์ด์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

      • ์ฝ”๋“œ ์˜ˆ์ œ

        $wp.content.movePage(โ€˜pagenameโ€™);

      • ๊ธฐํƒ€

        setDefaultCallback()์˜ pageChanged ์ƒํƒœ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ setDefaultCallback()

    • wp.device

      ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” W Player, Tizen ๋“ฑ์˜ Device ๊ด€๋ จ ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ API๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

      • getProperty ()

        • ์„ค๋ช…: Device์˜ ์†์„ฑ๊ฐ’์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

        • ๊ตฌ๋ฌธ: function getProperty (โ€˜nameโ€™);

        • ํŒŒ๋ผ๋ฏธํ„ฐ

          name: ์†์„ฑ๋ช…

          name

          ๋ฐ˜ํ™˜๊ฐ’

          ์œ ํ˜•์„ค๋ช…

          player_version

          string

          value: w player version

          fw_version

          string

          value: firmware version

          variable_tag

          array

          value: tag list

          mis_ip

          string

          value: mis ip address

          mac

          string

          value: mac address

          ipaddress

          string

          value: ip address

          resolution

          object

          { width: 1920, height: 1080 }

          orientation

          string

          value: landscape/portrait

        • ๋ฐ˜ํ™˜๊ฐ’

          Type: ์œ„ ํ‘œ ์ฐธ๊ณ 

          API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ: ์ •์ƒ๊ฐ’

          API๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ: undefined Type: bool

        • ์ฝ”๋“œ ์˜ˆ์ œ

          $wp.device.getProperty(โ€˜macโ€™);

      • getPropertyType()

        • ์„ค๋ช…: Device ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์†์„ฑ๋“ค์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          ์†์„ฑ๋ช…

          ๋ฐ˜ํ™˜๊ฐ’

          PLAYER_VERSION

          'player_version'

          FIRMWARE_VERSION

          'fw_version'

          VARIABLE_TAG

          'variable_tag'

          MIS_IP

          'mis_ip'

          MACADDRESS

          'mac'

          IPADDRESS

          'ipaddress'

          RESOLUTION

          'resolution'

          ORIENTATION

          'orientation'

        • ๊ตฌ๋ฌธ: function getPropertyType();

        • ํŒŒ๋ผ๋ฏธํ„ฐ

          None

        • ๋ฐ˜ํ™˜๊ฐ’

          ์„ฑ๊ณต: object(์†์„ฑ๋ช…), ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

        • ์ฝ”๋“œ ์˜ˆ์ œ

          $wp.device.getPropertyType();

        • ๊ธฐํƒ€

          $wp.device.getPropertyType();๋กœ๋ถ€ํ„ฐ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜ํ™”ํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์˜คํƒ€ ๋ฐฉ์ง€ ๋“ฑ์˜ ํŽธ๋ฆฌํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

          var devicePropertyType = $wp.device.getPropertyType();

          $wp.device.getProperty(devicePropertyType.MACADDRESS);

      • $wp.local

        ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ๊ฐ€ ์‹คํ–‰๋˜๋Š” local ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•œ API๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

        • getApiVersion ()

          • ์„ค๋ช…: ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ๊ฐ€์ ธ์˜จ W Player API Lib์˜ ๋ฒ„์ „์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          • ๊ตฌ๋ฌธ: function getApiVersion();

          • ํŒŒ๋ผ๋ฏธํ„ฐ

            None

          • ๋ฐ˜ํ™˜๊ฐ’

            ์„ฑ๊ณต: string (version), ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

          • ์ฝ”๋“œ ์˜ˆ์ œ

            $wp.local.getApiVersion();

          • ๊ธฐํƒ€

            $wp.utility.getApiVersion();๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        • getRootDirectory ()

          • ์„ค๋ช…: ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ๋กœ๋“œ๋œ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          • ๊ตฌ๋ฌธ: function getRootDirectory();

          • ํŒŒ๋ผ๋ฏธํ„ฐ

            none

          • ๋ฐ˜ํ™˜๊ฐ’

            ์„ฑ๊ณต: string (Root Directory), ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

          • ์ฝ”๋“œ ์˜ˆ์ œ

            Anchor
            $wp.local. getRootDirectory();
            $wp.local. getRootDirectory();
            $wp.local. getRootDirectory();

          • ๊ธฐํƒ€

            ์›น ์ฝ˜ํ…์ธ ์— ์ถ”๊ฐ€ํ•œ asset์€ getRootDirectory()๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ ํ•˜์œ„์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

      • $wp.utility

        ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‘์šฉ ์›น ์ฝ˜ํ…์ธ  ์š”์†Œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ utility API๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

        • log ()

          • ์„ค๋ช…: ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ๊ฐ€์ ธ์˜จ W Player API Lib์˜ ๋ฒ„์ „์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          • ๊ตฌ๋ฌธ: function log(โ€œmessageโ€);

          • ํŒŒ๋ผ๋ฏธํ„ฐ

            message: string

          • ๋ฐ˜ํ™˜๊ฐ’

            Type: void

          • ์ฝ”๋“œ ์˜ˆ์ œ

            $wp.utility.log(โ€œHello World!โ€);

          • ๊ธฐํƒ€

            ๋กœ๊ทธ๋ฅผ ์›๊ฒฉ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ

        • getApiVersion ()

          • ์„ค๋ช…: ์›น ์ฝ˜ํ…์ธ ๊ฐ€ ์‹คํ–‰๋˜๋Š” W Player๊ฐ€ ์ง€์›ํ•˜๋Š” W Player API Lib์˜ ๋ฒ„์ „์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

          • ๊ตฌ๋ฌธ: function getApiVersion();

          • ํŒŒ๋ผ๋ฏธํ„ฐ

            none

          • ๋ฐ˜ํ™˜๊ฐ’

            ์„ฑ๊ณต: string (version), ์‹คํŒจ: ํ•ญ์ƒ ์„ฑ๊ณต

          • ์ฝ”๋“œ ์˜ˆ์ œ

            $wp.utility.getApiVersion();

          • ๊ธฐํƒ€

            $wp.local.getApiVersion();๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์ฃผ์š” ๊ธฐ๋Šฅ ์ฝ”๋“œ ์˜ˆ์ œ

    • Text ์š”์†Œ ํฐํŠธ ์ƒ‰์ƒ ๋ณ€๊ฒฝํ•˜๊ธฐ

      ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ โ€˜Text1โ€™์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ–๋Š” ํ…์ŠคํŠธ ์š”์†Œ(Text Element)์˜ ํฐํŠธ ์ƒ‰์ƒ(Font Color)์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Info
      title์ฐธ๊ณ 

      ์š”์†Œ ์ด๋ฆ„์€ ์š”์†Œ โ€˜์ด๋ฆ„ ๋ณ€๊ฒฝ ์„ค๋ช…โ€™์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Code Block
                  <html>
                  <head>
                    <script src="wplayer-api-v1.0.0.js"></script>        
                    <script>
                      const contentPropertyType = $wp.content.getPropertyType();
                      $wp.content.getPage().getElement('Text1').setProperty(contentPropertyType.FONTCOLOR,rgba(255, 0, 0, 1));
                    </script>
                    </head>    
                    </html>
                
    • Anchor
      ์ƒํƒœ ์ด๋ฒคํŠธ ์ „๋‹ฌ๋ฐ›๊ธฐ
      ์ƒํƒœ ์ด๋ฒคํŠธ ์ „๋‹ฌ๋ฐ›๊ธฐ
      ์ƒํƒœ ์ด๋ฒคํŠธ ์ „๋‹ฌ๋ฐ›๊ธฐ

      ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” state๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      Code Block
                <html>
                <head>
                    <script src="wplayer-api-v1.0.0.js"></script>        
                    <script>
                  var PageID = null;
                  $wp.setDefaultCallback(function(object) {
                    switch (object.type) {
                      case 'state':
                        switch (object.sub) {
                          case 'ready':
                            $wp.utility.log(`ElementHtml get 'ready' state`);
                            PageID = object.pageId; //getPage() ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ Id ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
                            break;
                          case 'play':
                            $wp.utility.log(`ElementHtml get 'play' state`);
                            break;
                          case 'stop':
                            $wp.utility.log(`ElementHtml get 'stop' state`);
                            $wp = null; //stop ์‹œ null ์„ค์ •์„ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค ๋ฐ˜ํ™˜ ์ง„ํ–‰
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                  });
                  </script>
                
    • Anchor
      User ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ
      User ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ
      User ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ

      ์ƒํƒœ ์ด๋ฒคํŠธ์—์„œ ๊ฐ์ฒด๋กœ Web Author์—์„œ ์ €์ž‘ ์‹œ ์„ค์ •ํ•œ user data๋ฅผ key: value ํ˜•์‹์œผ๋กœ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      User data๋Š” getProperty์˜ USERDATA๋ฅผ ์ด์šฉํ•ด ๊ตฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

      Code Block
                <html>
                <head>
                    <script src="wplayer-api-v1.0.0.js"></script>        
                    <script>
                    const contentPropertyType = $wp.content.getPropertyType();
                    $wp.setDefaultCallback(function(object) {
                      switch (object.type) {
                        case 'state':
                          switch (object.sub) {
                            case 'ready':
                            $wp.content.getPage(object.pageId).getElement('Text1').setProperty(contentPropertyType.TEXT, `${JSON.stringify(object.data)} from User Data`);
                            break;
                            default:
                            break;
                          }
                          break;
                      default:
                          break;
                      }
                    });
                    </script>
                    </head>    
                    </html>
                
    • UDP ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ

      UDP port๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • Web Author์—์„œ ์ €์ž‘ ์‹œ ์›น ์ฝ˜ํ…์ธ ์˜ External Data > UDP Listener ์†์„ฑ์ด ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      • Web Author์—์„œ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(Preview)๋ฅผ ์ด์šฉํ•ด UDP ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

        Code Block
                        <html>
                        <head>
                          <script src="wplayer-api-v1.0.0.js"></script>        
                          <script>
                          var PageID = null;
                          const contentPropertyType = $wp.content.getPropertyType();
                          $wp.setDefaultCallback(function(object) {
                              switch (object.type) {
                              case 'state':
                              switch (object.sub) {
                                case 'ready':
                                PageID = object.pageId; //getPage() ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ Id ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
                                break;
                              }
                            case 'udp':
                              $wp.content.getPage(PageID).getElement('Text1').setProperty(contentPropertyType.TEXT, `${object.data} from UDP`);
                              break;
                            default:
                              break;
                            }
                          });
                        </script>
                        </head>    
                        </html>                 
                        
    • Anchor
      Datalink ํ…Œ์ด๋ธ” ์ „๋‹ฌ๋ฐ›๊ธฐ
      Datalink ํ…Œ์ด๋ธ” ์ „๋‹ฌ๋ฐ›๊ธฐ
      Datalink ํ…Œ์ด๋ธ” ์ „๋‹ฌ๋ฐ›๊ธฐ

      Datalink์—์„œ ์ „๋‹ฌ๋˜๋Š” table data๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • Web Author์—์„œ ์ €์ž‘ ์‹œ ์›น ์ฝ˜ํ…์ธ ์˜ EXT. DATA DATALINK ์†์„ฑ์ด ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

        Code Block
                        <html>
                        <head>
                          <script src="wplayer-api-v1.0.0.js"></script>        
                          <script>
                        var PageID = null;
                        const contentPropertyType = $wp.content.getPropertyType();
                        $wp.setDefaultCallback(function(object) {
                          switch (object.type) {
                              case 'state':
                              switch (object.sub) {
                                case 'ready':
                                PageID = object.pageId; //getPage() ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ Id ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ
                                break;
                              }
                            case 'datalink':
                              if (object.sub === โ€˜mytablenameโ€™) {
                                $wp.content.getPage(PageID).getElement('Text1').setProperty(contentPropertyType.TEXT ,`${object.data} from Datalink`);
                                }
                              break;
                            default:
                              break;
                          }
                        });
                        </script>
                        </head>    
                        </html>
                        
    • ํด๋ฆญ ์ด๋ฒคํŠธ ์ „๋‹ฌ๋ฐ›๊ธฐ

      • ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ 'Image1'์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ–๋Š” image element์˜ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. โ–ถ Datalink ํ…Œ์ด๋ธ” ์ „๋‹ฌ๋ฐ›๊ธฐ

        Code Block
                        <html>
                        <head>
                          <script src="wplayer-api-v1.0.0.js"></script>        
                          <script>
                        const contentPropertyType = $wp.content.getPropertyType();
                        $wp.content
                          .getPage()
                          .getElement('Image1')
                          .addEventListener('click', (e) => {
                            $wp.content.getPage().getElement('Text1').setProperty(contentPropertyType.TEXT, `Click Image1`);
                          });
                        </script>
                        </head>    
                        </html>
                        
  4. Sample ๋‹ค์šด๋กœ๋“œ ๋ฐ ์ฃผ์š” ๋™์ž‘ ํ•™์Šตํ•˜๊ธฐ

    Sample LFD ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ›„ Web Author์˜ Open Local File ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ Web Author์— Import ํ•˜๋ฉด Web Author์˜ Preview ๊ธฐ๋Šฅ ๋ฐ W Player์— ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด W Player API์˜ ์ฃผ์š” ๋™์ž‘ ๊ธฐ๋Šฅ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    Sample LFD ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐœ์˜ Page๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

    4-1. Default Page

    ๊ด‘๊ณ ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ์ปจํ…์ธ ๋ฅผ ์žฌ์ƒํ•˜๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์„ touch ํ•  ๊ฒฝ์šฐ, ์ •๋ณด์ œ๊ณต ๋“ฑ์˜ ๋‹ค๋ฅธ ์ปจํ…์ธ ๋ฅผ ํฌํ•จํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•˜์—ฌ ์žฌ์ƒํ•œ๋‹ค.

    • ๊ตฌ์„ฑ:

      1) ํ™”๋ฉด์— ์žฌ์ƒ๋  ๋ฐฐ๊ฒฝ ์š”์†Œ (ex. ๊ด‘๊ณ  ๋™์˜์ƒ/์ด๋ฏธ์ง€)

      2) ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ touch ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ์š”์†Œ

      3) Player์˜ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค„ ๋ฒ„ํŠผ ๋ฐ ํ…์ŠคํŠธ ์š”์†Œ

      4) Web Content

      • ๊ธฐ๋Šฅ:

        (1) ํŽ˜์ด์ง€ ์ „ํ™˜์„ ์œ„ํ•œ ์š”์†Œ๋กœ๋ถ€ํ„ฐ touch ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ „ํ™˜์‹œํ‚จ๋‹ค.

        (2) player์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ์š”์†Œ๋กœ๋ถ€ํ„ฐ touch ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ Player(device)์˜ ip address, mac address, version ๋“ฑ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

        (3) ๋ฆฌ๋ชจ์ปจ์˜ keydown ์ด๋ฒคํŠธ ์ˆ˜์‹ , udp๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์„ ํ†ตํ•˜์—ฌ ํŽ˜์ด์ง€ ์ „ํ™˜ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๋™์ž‘ํ•œ๋‹ค.

      • Web Author ์„ค์ •:

        (1) User Data ์„ค์ •: ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ touch ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•  ์š”์†Œ์˜ ์ด๋ฆ„์„ โ€˜clickElementโ€™(key)์˜ value์— ์ €์žฅํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.

        Stylesheet
        classscreen

        Image Modified

        (2) External Data ์„ค์ •: UDP Listener๋ฅผ ํ™œ์„ฑํ™” ์‹œ์ผœ์„œ webContent๊ฐ€ UDP๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

        Stylesheet
        classscreen

        Image Modified

    4-2. MenuBoard Page

    Datalink๋ฅผ ํ†ตํ•˜์—ฌ ๋ฉ”๋‰ด ๋ณด๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , sold-out ๋“ฑ์˜ ์ด๋ฒคํŠธ์— ๋”ฐ๋ฅธ ๋™์ž‘์„ ๋ฉ”๋‰ด ๋ณด๋“œ์— ์ถ”๊ฐ€ํ•˜์—ฌ ์žฌ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์ด ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์—†์„ ๊ฒฝ์šฐ, ๊ธฐ๋ณธ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    • ๊ตฌ์„ฑ:

      1) WebContent

      • ๊ธฐ๋Šฅ:

        (1) Datalink๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ๋ฉ”๋‰ด ๋ณด๋“œ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

        (2) ๋ฉ”๋‰ด ๋ณด๋“œ ์ค‘ sold-out ์ƒํ’ˆ์ผ ๊ฒฝ์šฐ, ์ ์ ˆํ•œ ํšจ๊ณผ๋ฅผ ์ ์šฉํ•œ๋‹ค.

        (3) ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ์ž์˜ ๋™์ž‘์ด ์—†์„ ๊ฒฝ์šฐ, ๊ธฐ๋ณธ ์ปจํ…์ธ ๊ฐ€ ์žฌ์ƒ๋˜๋Š” ํŽ˜์ด์ง€๋กœ ์ „ํ™˜์‹œํ‚จ๋‹ค.

      • Web Author ์„ค์ •:

        (1) User Data ์„ค์ •: ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ •์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•˜๋Š”๋ฐ, ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ์ผ์ • ์‹œ๊ฐ„์„ โ€˜timeoutโ€™(key)์˜ value์— ์ €์žฅํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.

        ๊ธฐ๋ณธ ์ปจํ…์ธ ๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง€์˜ ์ด๋ฆ„์„ โ€˜defaultPageNameโ€™(key)์˜ value์— ์ €์žฅํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค.

        Stylesheet
        classscreen

        Image Modified

        (2) External Data ์„ค์ •: UDP Listener๋ฅผ ํ™œ์„ฑํ™” ์‹œ์ผœ์„œ webContent๊ฐ€ UDP๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค.

        Stylesheet
        classscreen

        Image Modified

        DataLink Listener๋ฅผ ํ™œ์„ฑํ™” ์‹œํ‚ค๊ณ  DataLink Table์„ ํ†ตํ•˜์—ฌ WebContent์— ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

        Stylesheet
        classscreen

        Image Modified