PHP から Flash ファイルに変数を渡す際に問題が発生しました。フラッシュ環境では問題なく動作しますが、ファイルをサーバー上の実際のページに移動すると、ローダーが値を返さないようです。それが引き起こす可能性のある提案はありますか?ありがとうございました
2 に答える
            1        
        
		
あなたはコードを提供していないので、これらは私の推測です:
- 情報を要求しているサーバーにクロスドメインポリシーを追加していません。
于 2012-04-13T00:32:06.640   に答える
    
    
            0        
        
		
コードを投稿しなかった理由は、コードが少し多いためです...
助けてくれてありがとう
メイン文書:
function enterLogin(e:MouseEvent):void{
        if(myLogin.inpt_userName.text==""||myLogin.inpt_password.text==""){
        dtf_messenger.text="Please input your username and password.";
        }else{
            dispatchData(myLogin.inpt_userName.text,myLogin.inpt_password.text);
        dtf_messenger.text="First login stage completed.";
        }
}
function dispatchData(userName:String, userPass:String){
        mySendVars.username=userName;
        mySendVars.userpassword=userPass;
        myPostman = new postman(myScriptURL, myDataType, mySendVars);
        myPostman.addEventListener(Event.COMPLETE, showFeedback);
        dtf_messenger.text="Second login stage completed.";
}
function showFeedback(e:Event):void{
dtf_messenger.text="Third login stage completed";
        myGift=e.target.delivery;
}
私の郵便配達員クラス:
パッケージ {
import flash.display.MovieClip;
import flash.events.*;
import fl.data.DataProvider;
// classes for server script connection
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.events.IOErrorEvent;
public class postman extends MovieClip{
    public static const VARIABLES:String = "variables";
    public static const TEXT:String = "text";
    public static const BINARY:String = "binary";
    public static const XML_DATA:String = "XML";
    private var myRequest:URLRequest;
    private var myVars:URLVariables;
    public var phpVars:URLVariables;
    private var myLoader:URLLoader;
    private var labelDataType:String;
    public var delivery:Object;
    public var error:Boolean;
    public var boxContent:DataProvider = new DataProvider();
    public function postman(theURL:String, theDataType:String="delivery.VARIABLES", theSendObject:Object=null) {
        myVars = new URLVariables(); // this holds variables to send (as dynamic properties)
        if (theSendObject) {
            for (var i in theSendObject) {
                myVars[i] = theSendObject[i];
            }
        }
        myRequest = new URLRequest();// this prepares the request for the loader
        myRequest.url=theURL;
        myRequest.method=URLRequestMethod.GET;
        myRequest.data=myVars;
        myLoader=new URLLoader();
        myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
        myLoader.addEventListener(Event.COMPLETE, dataDispatched);
        myLoader.load(myRequest);
    }
    public function dataDispatched(e:Event){
            delivery=new URLVariables(e.target.data);
            dispatchEvent(new Event(Event.COMPLETE));
    }
}
}
そして私のphp:
require_once('includes/config.inc.php'); mysql_select_db("何らかのデータベース");
$userName = $_GET['username'];
$userPassword = sha1($_GET['userpassword']);
$loginQuery="SELECT id, userName, active FROM users WHERE userName='".$userName."' AND pass='".$userPassword."'";
$loginResult=mysql_query($loginQuery, $db);
if(mysql_num_rows($loginResult)==1){
    $row=mysql_fetch_array($loginResult,MYSQL_ASSOC);
    $user_id=$row['id'];
    $user_name=$row['userName'];
    $active=$row['active'];
    if($active==0){
        echo "var0=0&var1=This account hasn't yet been activated.";
    }else{
            setcookie("user_id",$user_id,0,'/','',0);
            setcookie("user_name",$user_name,0,'/','',0);
            echo "var0=1&var1=Welcome ".$userName."!\nYou have been logged in.";
    }
}else{
    echo "var0=0&var1=Incorrect username or password.\nPlease try again.";  
}
mysql_close($db);
したがって、これらすべてをフラッシュで実行すると、正常に動作します。私のphpと同じサーバーにswfファイルをアップロードすると、最初の段階にしか到達しません: dtf_messnger.text="最初のログイン段階が完了しました"...
于 2012-04-13T08:38:56.610   に答える