Року канал для рекламы - PullRequest
0 голосов
/ 17 января 2020

Я новичок в разработке roku. У меня есть требование для отображения различных обширных рекламных URL в списке с вертикальной прокруткой. При выборе конкретного рекламного URL, необходимо воспроизвести объявление. URL-адреса объявлений присутствуют в файле json.

Я пытаюсь использовать компонент RowList для показа рекламы, используя roku пример проекта .

Я внес изменения в пример кода, и он не отображает содержимое. Я только что попытался отобразить URL объявления в виде текста ярлыка. Может ли кто-нибудь помочь мне. RAF работает в главном потоке brightscript, а screengraph работает в отдельном потоке, есть ли возможность зарегистрировать наблюдателей для экрана в main.brs и воспроизвести рекламу в главном потоке.

RowListScene. xml -

<?xml version="1.0" encoding="UTF-8"?>
<component name="RowListExample" extends="Scene" initialFocus="exampleRowList">
    <script type="text/brightscript" uri="pkg:/components/adsrowlistscene.brs" />
    <children>
        <RowList id="exampleRowList" 
        rowHeights="300"
        numRows="10"
        translation="[100, 100]" itemSize="[ 1608, 308 ]"
        rowItemSize="[ [536, 308] ]" itemSpacing="[ 0, 40 ]"
        showRowLabel="[ true ]" 
        itemComponentName="RowListItem"
        vertFocusAnimationStyle="fixedFocusWrap"
        rowFocusAnimationStyle="fixedFocusWrap"/>
    </children>
</component>

adsrowlistscene.brs -

sub init()
    m.backgroundURI = "pkg:/images/rsgde_splash_hd.jpg"
    adsRowList = m.top.findNode("exampleRowList")
    adsRowList.content = CreateObject("roSGNode", "RowListContent")
    m.top.setFocus(true)
end sub

rowlistcontent. xml -

<?xml version="1.0" encoding="UTF-8"?>
<component name="RowListContent" extends="ContentNode" >
    <script type="text/brightscript" uri="rowlistcontent.brs"/>
</component>

rowlistcontent.brs -

sub init()
    fileData = ReadAsciiFile("pkg:/json/ads.json")
    response = ParseJson(fileData)
    ? "file data";response
    m.top.appendChild(createContent(response.ima.ads))
end sub

function createContent(ads as object) as Object
    rowContent = CreateObject("roSGNode", "ContentNode")
    rowContent.Title = "Test"
    for each ad in ads
        content = CreateObject("roSGNode", "adcontent")
        content.title = ad.id + "_" + ad.name
        content.vasturl = ad.reference
        rowContent.appendChild(content)
        ? "each row item "; content
    end for
    return rowContent
end function

adcontent. xml -

<?xml version="1.0" encoding="UTF-8"?>
<component name="adcontent" extends="Task" >
    <script type="text/brightscript"/>
    <interface>
        <field id="vasturl" type="string" alwaysNotify = "true"/>
        <field id="title" type="string"/>
    </interface>
</component>

rowlistitem. xml -

<?xml version="1.0" encoding="UTF-8"?>
<component name="RowListItem" extends="Group">
    <script type="text/brightscript" uri="pkg:/components/rowlistitem.brs" />
    <children>
        <Label id="itemLabel" text="Sample" translation="[50, 40]" wrap="true"/>
    </children>
</component>

rowlistitem.brs -

sub init()
    ? "adsRowItem init"
    m.itemLabel = m.top.findNode("itemLabel")
end sub

sub showcontent()
  itemcontent = m.content
  m.itemLabel.text = itemContent.vasturl
end sub

Заранее спасибо

...