Çalışma zamanında PHP bir Flash film, istek veri

4 Cevap php

Bu çalışma zamanında PHP bir Flash film bazı verileri istemek mümkün mü? Belki de gerçek dünya uygulama bazı şeyleri açıklığa kavuşturabilir:

I use a Flash movie to store a Local Shared Object (because for some reason I need LSO's instead or regular PHP cookies). Now, when I load up a PHP file I want to somehow retrieve the data from the LSO at runtime, assign it to some variables, and use the variables through the rest of the script.

Bazı araştırma yapmak bana ben niyetinde şekilde mümkün değil inanıyoruz yapar. Yani herhangi bir diğer öneriler, yöntemler veya çözümler son derece açıktır.

4 Cevap

Flash ve PHP haberleşmek için en iyi yolu, XML (UTF-8 kullanmak için unutmayın!).

PHP:

$xml = new DOMDocument('1.0', 'UTF-8');
$doc = $xml->appendChild($xml->createElement('my-root-element'));
...
header('Content-Type: text/xml; charset=utf-8');
echo $xml->saveXML();

AS3

var myLoader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest('http://host.com/my_xml.php');
myLoader.addEventListener(Event.COMPLETE, onMyXMLLoad);
myLoader.load(req);

function onMyXMLLoad(evt:Event)
{
    trace(evt.target.data);
    var xml:XML = new XML(evt.target.data);
    ...
}

Ayrıca hakkında okumak ExternalInterface ... Evet, bazen olur ... Sen dynamicaly flash film ile iletişim kurmak için JS oluşturmak isteyebilirsiniz olabilir.

Biz burada bunu (ve biz bu adil düşeni yapmak) iki yolu vardır. Biri Flash uygulama tarafından tüketilen iyi biçimli XML çıktılar böylece PHP yazmaktır. Diğer biraz daha karmaşık yapılandırmak için AMFPHP, hangi kullanıyor, ancak yerli Flash nesneleri içine PHP nesneleri / diziler çeviri açısından oldukça çok şey yapabilir.

Bu tam olarak sizin özel durumunuza uyuyor, ama bir Flash uygulamasının içinde PHP veri almak için bir genel çözümü açısından, bu iş bitmiş olur emin değilim.

Use getURL() you can fetch a page that returns the needed data or sets the needed data.

What I would suggest is that you call a page like flashExchange.php via

getURL('flashExchange.php?cacheBust=' + random(99999), '_blank');

Daha GET değişkenleri ekleyebilir veya bu ile, verileri POST olabilir.

Bence (ben bir flaş kodlayıcı değilim) ...

size flash film bu değişiklikleri eğer onun WÖL durumunu bildirmek zorundadır, yani (yerine swf çekme) php itmek zorunda. neden? sunucu çalışan swf örneklerini bilmiyor çünkü.

Eğer bunu yapabilirsiniz ...

  • ya sürekli sunucuya LSO bir tefrika sürümü sonrası (ve bir dosya veya db kaydedin)

    Eğer php komut dosyası çalıştırırsanız =>, en son veri ile çalışıyor

    çok basit ve yalındır. Muhtemelen yol gitmek.

  • veya php script bir soket sunucu oluşturmak. swf şimdi sürekli sunucusuna bağlanmaya çalışır. Sunucu cevap veriyorsa, tefrika LSO gönderebilir.

    => Bir bağlantı yapılır ve then canlı veriler ile çalışır kadar size php script blokları çalıştırırsanız

    php bir soket sunucusu yazma önemsiz ne zor ne olduğunu, ama cli modda php çalıştırmak gerekiyor

problems:

  1. aksi takdirde alışkanlık WÖL bulunuyor kim rapor biliyorum, sen ayrı müşterilerine söylemek gerekir - flaş film halk ise, çalışan örnek bir sürü olabilir.

  2. Bu flaş film çalışan örneklerini sürü varsa, sürekli istekleri ile bombardıman olacak.

  3. soketli sunucu çözümü için, ihtiyacınız olacak ...

    • cli-app olarak php çalıştırmak için muktedir
    • güvenlik duvarı açık bir liman. (Son derece şanslı ya da şanssız kadar) 3. parti Shell buna izin vermez.

ben bilmiyorum başka yollar olabilir.