【问题标题】:flash filereference select event not firing after using browse() and after selecting a file使用browse()和选择文件后flash filereference select事件未触发
【发布时间】:2011-08-11 13:48:26
【问题描述】:

这是我第一次使用动作脚本。我见过一个闪存程序员使用它。因为我知道 javascript,所以我能够在动作脚本中工作。

我正在为我的 php 项目创建一个文件上传组件。 到目前为止,我已经使用 FileReference api 显示文件对话框。 选择事件没有为我触发。我没有收到任何错误。

import fl.controls.Button;
import flash.events.*
import flash.net.FileReference

var fr:FileReference = new FileReference();
fr.addEventListener(Event.SELECT,sico);
var myButton:Button = new Button();
addChild(myButton); 

myButton.label = "Click Me";

myButton.addEventListener(MouseEvent.CLICK, function(e:MouseEvent)
{
    myButton.label  = "clicked";
    fr.browse();
    trace('clicked');
})

function sico(event:Event):void
{
//var file:FileReference = FileReference(e.target);
myButton.label = "selected";
trace('selected');
//trace("progressHandler: name=" + file.name + " bytesLoaded=" + e.bytesLoaded + " bytesTotal=" + e.bytesTotal);

}                                           

文档说文件引用只能在鼠标或键盘等事件期间调用。

我在上面的代码中遗漏了什么?

【问题讨论】:

  • 这应该可以,但是您必须检查trace("selected"); 的输出,因为您的点击事件和选择事件将同时发生,因此您的按钮标签不会出现变化。
  • 我创建了一个单帧 fla 并将您的代码复制到我的 fla 中(删除了代码的新 Button() 部分,并从组件面板中添加了一个按钮并将其命名为 myButton),一切正常预计!

标签: actionscript-3 file-upload


【解决方案1】:

您发布的示例适用于 Flash CS5 和 Flash Player 10.3,这意味着问题不在于代码。

问题的其他潜在原因可能是:

  • 您使用的 Flash Player 版本太旧。 FileReference 需要 Flash Player 9 或更高版本。右键单击 Flash Player 或使用 trace(Capabilities.version) 查看版本号。
  • 应用程序的另一部分正在使用 FileReference 方法(例如:FileReference.browse()、FileReference.upload()、FileReference.download()、FileReference.load()、FileReference.save())。 Flash player 10+ 一次只允许一个文件操作。
  • 如果您使用的是 Mac,则 FileReference 只能在 SWF 在浏览器中运行时调度 SELECT 事件。

【讨论】:

  • 我今天面临的另一个问题是我使用了跟踪(Capabilities.version)...输出窗口不断地不断填充版本...这个脚本是否会一次又一次地倒带循环电影控件。我在 myButton.lable 行下面包含了代码。
  • 好像时间线有很多帧,会导致代码被重复调用。确保时间轴只有一帧。
  • 是的。确切地。我正要提到这一点。现在它正在工作。
【解决方案2】:

就像用户:lukevanin 在他的回答的评论部分所说的那样。我也发现了同样的情况。问题是我在时间轴上有很多帧。因为在 F9 之间切换时我是动作脚本的新手,所以我正在尝试 F5,所以它创建了帧,并且在这之间不断循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多