Flash Player 10 및 Flex SDK 3.4를 사용했습니다. 다음과 같은 코드 : 나는 대화 상자에서 일부 파일을 선택할 때 만 imageSelectCancelCallback 핸들러가 호출되는 FileReference.load()가 예외로 적용되지 않음
// Following comes callbacks
function imageLoadOpenCallback(evt:Event):void
{
trace("in--open");
}
function imageLoadCompleteCallback(evt:Event):void
{
trace("in--load");
var fr:FileReference = evt.target as FileReference;
trace(fr.data);
}
function imageLoadErrorCallback(evt:IOErrorEvent):void
{
trace("in--ioerror");
}
function imageSelectCancelCallback(evt:Event):void
{
trace("in cancel");
}
function imageSelectCallback(evt:Event):void
{
trace("in -- select");
for (var i:int=0; i<frl.fileList.length; i++)
{
frl.fileList[i].addEventListener(Event.OPEN, imageLoadOpenCallback);
frl.fileList[i].addEventListener(Event.COMPLETE, imageLoadCompleteCallback);
frl.fileList[i].addEventListener(IOErrorEvent.IO_ERROR, imageLoadErrorCallback);
frl.fileList[i].load();
trace(frl.fileList[i]);
trace(frl.fileList[i].creationDate);
trace(frl.fileList[i].creator);
trace(frl.fileList[i].data);
trace(frl.fileList[i].name);
}
}
// Following comes UI handlers
function onAddPictures():void
{
var imageFilter:FileFilter = new FileFilter("Images", "*.jpg;*.png");
frl.addEventListener(Event.SELECT, imageSelectCallback);
frl.addEventListener(Event.CANCEL, imageSelectCancelCallback);
frl.browse([imageFilter]);
}
. 그러나 load/open/io_error 핸들러는 전혀 호출되지 않습니다. Google에 FileReferenceList 대신 FileReference를 사용하는 코드 예제가 있습니다. 그 이유를 모르겠다. 제발 나를 도울 수 있겠 니?
yor 코드를 올바르게 포맷 하시겠습니까? – poke
위의 코드를 프로젝트에 복사하면 예상대로 정확하게 작동합니다. 확인을 클릭하면 선택 핸들러가 호출되고 개별 파일이로드 된 후로드 핸들러가 호출됩니다. –