【发布时间】: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