尝试在 PHP 文件中调用方法时出现 ActionScript 错误

Posted

技术标签:

【中文标题】尝试在 PHP 文件中调用方法时出现 ActionScript 错误【英文标题】:ActionScript error when attempting call method within PHP file 【发布时间】:2013-12-21 06:49:34 【问题描述】:

我一直在关注在线 Flash 教程,并创建了一个简单的 Flash 界面。我正在尝试通过 php 文件从我的 SQL 数据库中检索数据并显示。编译时出现以下错误:

错误 #1009:无法访问空对象引用的属性或方法

var variables1:URLVariables = new URLVariables();
var varSend1:URLRequest = new URLRequest("databaseCall.php");
varSend1.method = URLRequestMethod.POST;
varSend1.data = variables1;

var varLoader1:URLLoader=new URLLoader();
varLoader1.dataFormat = URLLoaderDataFormat.VARIABLES;
varLoader1.addEventListener(Event.COMPLETE,completeHandler1);

variables1.comType = "requestEntries";

varLoader1.load(varSend1);

function completeHandler1(event:Event):void

if(event.target.data.returnBody =="")
    gbOutput_txt.text = "No data coming through";
 else
    gbOutput_txt.condenseWhite = true;
    gbOutput_txt.htmlText = "" +event.target.data.returnBody;


我的代码与教程中使用的代码完全匹配。我已经修改了php文件以简单地返回“”所以问题几乎肯定出在动作脚本中......我认为:S当他调用completeHandler1函数时编译器会崩溃。您认为这可能是什么原因造成的?

提前致谢。

【问题讨论】:

分享原始教程链接可能会有所帮助。 【参考方案1】:

您需要先声明 completeHandler1 函数,然后再尝试在其他任何地方使用它。

这是您修改的代码以描述我在说什么。

var variables1:URLVariables = new URLVariables();
var varSend1:URLRequest = new URLRequest("databaseCall.php");
varSend1.method = URLRequestMethod.POST;
varSend1.data = variables1;

function completeHandler1(event:Event):void

    if(event.target.data.returnBody =="")
        gbOutput_txt.text = "No data coming through";
     else
        gbOutput_txt.condenseWhite = true;
        gbOutput_txt.htmlText = "" +event.target.data.returnBody;
    



var varLoader1:URLLoader=new URLLoader();
varLoader1.dataFormat = URLLoaderDataFormat.VARIABLES;
varLoader1.addEventListener(Event.COMPLETE,completeHandler1);

variables1.comType = "requestEntries";

varLoader1.load(varSend1);

试一试,让我知道它是否有效。

【讨论】:

您好,感谢您的回复。这似乎并没有解决问题。以下是错误消息:TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 AS3_Adam_mysql_Guestbook_fla::testimonials_1/completeHandler1()[AS3_Adam_MySQL_Guestbook_fla.testimonials_1::frame1:9] 在 flash.events::EventDispatcher/dispatchEventFunction() 在 flash.events::EventDispatcher/dispatchEvent() 在 flash.net::URLLoader/onComplete () 啊,我想我知道问题所在了。处理程序中引用的 gbOutput_txt 对象为 null,因为它的范围不正确。如果可能,尝试通过 event 对象访问它来更改引用该对象的方式。您可能需要进行一些调试来确定事件对象中的哪个位置(如果它存在于其中),可以从中引用它。否则,您将必须创建一个自定义事件类,您可以将该对象传递给您的事件处理程序。 嗨,再次感谢。我明白你的意思了。我会考虑你的 cmets 再试一次。这让我感到困惑,因为我一直在观看的教程与在视频中成功编译的代码完全相同。奇怪的。谢谢

以上是关于尝试在 PHP 文件中调用方法时出现 ActionScript 错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试调用方法 imagerotate 时出现 500 内部服务器错误

执行 amfphp 文件时出现错误

调用 Intent.ACTION_CALL 时出现 ActivityNotFoundException

在文章中提交 PHP 表单时出现 Joomla 2.5 404 错误

尝试使用 .htaccess 文件删除 .php 扩展名时出现 403 禁止错误

为啥在 Eloquent 模型中调用方法时出现“不应静态调用非静态方法”?