2013-04-16 2 views
1

У нас возникли проблемы с размещением объявления из LeadBolt в центре экрана в приложении, созданным в Adobe Air с помощью ActionScript3.Размещение объявлений и Stagewebview в AIR с использованием объявлений LeadBolt

Мы используем StageWebView с простым HTML-кодом, чтобы окружить сценарий, который используется с LeadBolt. Объявление загружается так, как должно быть, поэтому проблем нет.

Установки, которые мы имеем, это то, что мы устанавливаем SWF в ширину = 800 и height = 480, и мы используем StageScaleMode.EXACT_FIT и StageAlign.TOP_LEFT. Мы попытались установить несколько разных значений в прямоугольник, на который установлен viewPort. Например, мы попытались с (0, 0, 800, 480), а также 0, 0 и Capabilities.screenResolutionX/Y.

_adWindow.viewPort = new Rectangle(startX,startY,bannerWidth,bannerHeight); 

Затем мы попытались настроить размещение самого объявления с помощью CSS-перевесом в HTML отправленного в LoadString(). Мы постарались установить маржу с помощью _marginLeft как статически, так и динамически (просто пытаемся только с маркером, прежде чем идти на высоту).

_marginLeft = (Main.screenResX * 0.5) - (1.875 * Main.screensDPI * 0.5); 

Это наша попытка попытаться установить параметр для значения _marginLeft. 1.875 - это значение в дюймах в ширину, так как кажется, что объявление всегда имеет эту статическую ширину на всех устройствах. Предполагается, что это будет: 300px, но этого просто не происходит?

Это код, который мы используем для нашей строки для вызова с LoadString())

_htmlString = "<!DOCTYPE HTML>"; 
_htmlString += "<html><body style='margin:0 0 0 " + _marginLeft + "px;padding:0;'>"; 
_htmlString += "<script type='text/javascript' src='http://ad.leadboltads.net/show_app_ad.js?section_id=xxxxxxx'></script>"; 
_htmlString += "</body></html>"; 

Это просто не работает должным образом. Мы можем получить объявление, динамически размещенное посередине на вкладке 10.1 ", но затем объявление помещается неправильно на 4-дюймовый телефон. На вкладке есть DPI 160 (или действительно 149 от производителя, но возможности показывают это неправильно), а у телефона есть DPI 320 (что является правильным значением).

Похоже, что может быть какое-то искажение между пикселями в stagewebview и значениями, которые мы отправляем в viewPort? Может ли это быть связано с соотношением w: 800 и Capabilties.screenResolutionX?

любая помощь :-)

ответ

0

Как подозреваемой кажется, был StageScaleMode.EXACT_FIT, что ввинчивается вещи.

StageScaleMode.NO_SCALE устраняет проблему. После этого

adWindow.viewPort = new Rectangle(stage.fullScreenWidth * 0.5 - adWidth * 0.5, 
stage.fullScreenHeight * 0.5 - adHeight * 0.5, 
bannerWidth,bannerHeight); 

работает как шарм :-)

Смежные вопросы