Так что я не могу понять, что с моим кодом не работает. По сути, я пытаюсь использовать метод Flash ActionScript для вставки рекламных объявлений Millennial Media в приложение, которое я делаю. Но я немного застрял, потому что не могу получить ответ от Millennial Media, когда отправляю PHP из своего ActionScript.
Вот PHP:
<?php
/*--------------------------------------------------------------*/
/* Millennial Media PHP Ad Coding, v.7.4.20 */
/* Copyright Millennial Media, Inc. 2006 */
/* */
/* The following code requires PHP >= 4.3.0 and */
/* allow_url_fopen 1 set in php.ini file. */
/* */
/* NOTE: */
/* It is recommended that you lower the default_socket_timeout */
/* value in the php.ini file to 5 seconds. */
/* This will prevent network connectivity from affecting */
/* page loading. */
/*--------------------------------------------------------------*/
/*------- Publisher Specific Section -------*/
$mm_placementid = XXXXX;
$mm_adserver = "ads.mp.mydas.mobi";
/* The default response will be echo'd on the page */
/* if no Ad is returned, so any valid WML/XHTML string */
/* is acceptable. */
$mm_default_response = "";
/*------------------------------------------*/
/*----------- BEGIN AD INITIALIZATION ----------*/
/*----- PLEASE DO NOT EDIT BELOW THIS LINE -----*/
$mm_id = "NONE";
$mm_ua = "NONE";
@$mm_ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_USER_AGENT'] )){
$mm_ua = $_SERVER['HTTP_USER_AGENT'];
}
if (isset($_SERVER['HTTP_X_UP_SUBNO'])) {
$mm_id = $_SERVER['HTTP_X_UP_SUBNO'];
} elseif (isset($_SERVER['HTTP_XID'])) {
$mm_id = $_SERVER['HTTP_XID'];
} elseif (isset($_SERVER['HTTP_CLIENTID'])) {
$mm_id = $_SERVER['HTTP_CLIENTID'];
} else {
$mm_id = $_SERVER['REMOTE_ADDR'];
}
$mm_url = "http://$mm_adserver/getAd.php5?apid=$mm_placementid&auid="
. urlencode($mm_id) . "&ua=" . urlencode($mm_ua) . "&uip=" . urlencode($mm_id);
echo $mm_url;
/*------------ END AD INITIALIZATION -----------*/
?>
Это в основном возвращает большой длинный URL-адрес, который я затем использую для показа рекламы в моем файле Actionscript следующим образом:
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.LocationChangeEvent;
import flash.events.UncaughtErrorEvent;
import flash.geom.Rectangle;
import flash.media.StageWebView;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLStream;
import flash.net.URLVariables;
public class Main extends Sprite
{
public var s:String = new String();
public var final:String = new String();
private var _swv:StageWebView;
public function Main()
{
initRequest();
}
public function initRequest():void {
var request:URLRequest = new URLRequest("http://www.xxx.com.au/connect copy.php");
request.method = URLRequestMethod.POST;
var recVars:URLVariables = new URLVariables();
request.data = recVars;
var loader:URLLoader = new URLLoader(request);
loader.addEventListener(Event.COMPLETE, onComplete);
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.load(request);
function onComplete(event:Event):void{
s = event.target.data;
}
AdDisplay();
}
public function AdDisplay():void {
if (! _swv) {
_swv = new StageWebView () ;
_swv.viewPort = new Rectangle(stage.stageWidth/2 - 175,stage.stageHeight/2,500,500);
_swv.loadURL(s);
_swv.stage = stage;
}
}
}
}
Теперь, с помощью операторов трассировки, я знаю, что возвращаемый URL-адрес является целым и может использоваться.
В настоящее время возвращается:
http://ads.mp.mydas.mobi/getAd.php5?apid=56926&auid=144.132.17.0&ua=Mozilla%2F5.0+%28Android%3B+U%3B+en-GB%29+AppleWebKit%2F531.9+%28KHTML%2C+like+Gecko%29+AdobeAIR%2F2.6&uip=144.132.17.0
Но потом, когда я помещаю его в поле StageWebView, которое будет показано, оно ничего не показывает! Я заставил его работать раньше, не уверен, как, но он будет показывать только ОДИН рекламный ролик, и это все, и он будет делать это только иногда. Я тестировал его в своем браузере и пришел к выводу, что это как-то связано с & uip = и т. Д. И т. Д. Потому что, если я заменю этот IP-адрес на тот, который указан в примерах 63.145.58.2 - он работает и я получаю целую кучу разных объявлений от groupon.
Я не уверен, что это потому, что я здесь по беспроводной связи, и поэтому он просто отказывается или что-то в этом роде, или что-то происходит, но некоторая помощь была бы полезна, если бы кто-нибудь мог подумать о чем-то, что мне не хватает, или что-то знает о Millennial Media, который не показывает рекламу 100% времени.
Oh! Наконец, я попытался создать домашнюю рекламу, чтобы заполнить пробелы, когда реклама работала, но это тоже не сработало ...
Спасибо всем!