Я новичок в разработке 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
Заранее спасибо