Jomei
10.01.2011, 12:02
Здраствуйте у меня возникла небольшая проблемка с AS 3.0 + Perl.
В общем ActionScript скрипт при обращении в Perl скрипт должен выводить значение некой переменной которая находится в Perl скрипте. Код на AS 3.0 написан правильно, я это понял когда извлекал значение переменной с .txt файла и что самое удивительно с .php скрипта. В общем с .txt и .php всё отлично работает, а вот с Perl выводит значение unfined. Щас объясню подробнее с примерами:
Пример с простым текстовым файлом (TXT):
Основной код AS 3.0:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("index.txt");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код текстового файла (TXT):
someText=This is text from TXT file
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from TXT file
С TXT работает!
Пример с PHP скриптом:
Тот же код AS 3.0 только меняем в нем путь к PHP скрипту на сервере:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://localhost/index.php");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код PHP скрипта:
<?php
$otherText = "This is text from PHP script";
echo "someText=$otherText";
?>
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from PHP file
С PHP работает!
И наконец-то пример с Perl скриптом:
Тот же код AS 3.0 только меняем в нем путь к Perl скрипту на сервере:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://localhost/cgi-bin/index.pl");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код Perl скрипта:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
$otherText = "This is text from Perl script";
print "someText=$otherText";
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = unfined
С Perl не работает!
Гуру AS 3.0/Perl объясните в чем ошибка?
Я предполагаю что, что-то с Perl скриптом возможно не так, но что? При вводе адресса (http://localhost/cgi-bin/index.pl) в браузере, пишет что всё хорошо:
someText=This is text from Perl script
И с PHP так же само, всё хорошо. Но почему флешка выводит unfined только с Perl скриптом, а не текст: This is text from Perl script?
В общем ActionScript скрипт при обращении в Perl скрипт должен выводить значение некой переменной которая находится в Perl скрипте. Код на AS 3.0 написан правильно, я это понял когда извлекал значение переменной с .txt файла и что самое удивительно с .php скрипта. В общем с .txt и .php всё отлично работает, а вот с Perl выводит значение unfined. Щас объясню подробнее с примерами:
Пример с простым текстовым файлом (TXT):
Основной код AS 3.0:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("index.txt");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код текстового файла (TXT):
someText=This is text from TXT file
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from TXT file
С TXT работает!
Пример с PHP скриптом:
Тот же код AS 3.0 только меняем в нем путь к PHP скрипту на сервере:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://localhost/index.php");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код PHP скрипта:
<?php
$otherText = "This is text from PHP script";
echo "someText=$otherText";
?>
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = This is text from PHP file
С PHP работает!
И наконец-то пример с Perl скриптом:
Тот же код AS 3.0 только меняем в нем путь к Perl скрипту на сервере:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class URLVariablesExample extends MovieClip {
public function URLVariablesExample() {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://localhost/cgi-bin/index.pl");
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.load(request);
}
public function handleComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("someText = " + loader.data.someText);
}
}
}
Код Perl скрипта:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
$otherText = "This is text from Perl script";
print "someText=$otherText";
При компиляции AS 3.0 скрипта, в окне Output нам выдастся текст: someText = unfined
С Perl не работает!
Гуру AS 3.0/Perl объясните в чем ошибка?
Я предполагаю что, что-то с Perl скриптом возможно не так, но что? При вводе адресса (http://localhost/cgi-bin/index.pl) в браузере, пишет что всё хорошо:
someText=This is text from Perl script
И с PHP так же само, всё хорошо. Но почему флешка выводит unfined только с Perl скриптом, а не текст: This is text from Perl script?