我设法应用此代码,该代码获取文本文件并将其放入动态文本框中。这是代码:
// reference code from permadi
import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.utils.ByteArray;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.display.MovieClip;
import fl.controls.ProgressBarMode;
import fl.controls.TextArea;
var mFileReference:FileReference;
stop();
// Setup button to handle browsing
browseButton.buttonMode = true;
browseButton.mouseChildren = false;
browseButton.addEventListener(MouseEvent.CLICK, onBrowseButtonClicked);
// Hide progress bar;
progressBar.visible = false;
// This function is called when the BROWSE button is clicked.
function onBrowseButtonClicked(event:MouseEvent):void
{
trace("onBrowse");
mFileReference=new FileReference();
mFileReference.addEventListener(Event.SELECT, onFileSelected);
var swfTypeFilter:FileFilter = new FileFilter("Text Files","*.txt; *.html;*.htm;*.php");
var allTypeFilter:FileFilter = new FileFilter("All Files (*.*)","*.*");
mFileReference.browse([swfTypeFilter, allTypeFilter]);
}
// This function is called after user selected a file in the file browser dialog.;
function onFileSelected(event:Event):void
{
trace("onFileSelected");
// This callback will be called when the file is uploaded and ready to use
mFileReference.addEventListener(Event.COMPLETE, onFileLoaded);
// This callback will be called if there's error during uploading;
mFileReference.addEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
// Optional callback to track progress of uploading;
mFileReference.addEventListener(ProgressEvent.PROGRESS, onProgress);
// Tells the FileReference to load the file;
mFileReference.load();
// Show progress bar;
progressBar.visible = true;
progressBar.mode = ProgressBarMode.MANUAL;
progressBar.minimum = 0;
progressBar.maximum = 100;
browseButton.visible = false;
}
// This function is called to notify us of the uploading progress
function onProgress(event:ProgressEvent):void
{
var percentLoaded:Number = event.bytesLoaded / event.bytesTotal * 100;
trace("loaded: "+percentLoaded+"%");
progressBar.setProgress(percentLoaded, 100);
}
// This function is called after the file has been uploaded.;
function onFileLoaded(event:Event):void
{
var fileReference:FileReference = event.target as FileReference;
// These steps below are to pass the data as DisplayObject
// These steps below are specific to this example.
var data:ByteArray = fileReference["data"];
codeText.text = data.toString();
browseButton.visible = true;
progressBar.visible = false;
mFileReference.removeEventListener(Event.COMPLETE, onFileLoaded);
mFileReference.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
mFileReference.removeEventListener(ProgressEvent.PROGRESS, onProgress);
}
function onFileLoadError(event:Event):void
{
// Hide progress bar
progressBar.visible = false;
browseButton.visible = true;
mFileReference.removeEventListener(Event.COMPLETE, onFileLoaded);
mFileReference.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
mFileReference.removeEventListener(ProgressEvent.PROGRESS, onProgress);
trace("File load error");
}
它工作正常,我将加载的文件添加到字符串,但现在我希望Flash读取字符串并将其发送到与之对应的相关帧。这是代码:
stage.addEventListener(Event.ENTER_FRAME, updateFunction);
function updateFunction(e:Event)
{
if (codeText.text == "Preference 01")
{
gotoAndStop(50);
}
else if (codeText.text == "Preference 02")
{
gotoAndStop(51);
}
else if (codeText.text == "Preference 03")
{
gotoAndStop(52);
}
else if (codeText.text == "Preference 04")
{
gotoAndStop(53);
}
else
{
gotoAndStop(54);
}
}
我一直在收到关于空物体的错误1009,我试了好几个小时,但我觉得我需要一些帮助。
答案 0 :(得分:0)
如果你想要的是根据你加载的内容去另一个框架,只需删除你的updateFunction
并用以下内容替换你的onFileLoaded()
函数:
function onFileLoaded(event:Event):void {
var fileReference:FileReference = event.target as FileReference;
// These steps below are to pass the data as DisplayObject
// These steps below are specific to this example.
var data:ByteArray = fileReference["data"];
browseButton.visible = true;
progressBar.visible = false;
mFileReference.removeEventListener(Event.COMPLETE, onFileLoaded);
mFileReference.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError);
mFileReference.removeEventListener(ProgressEvent.PROGRESS, onProgress);
codeText.text = data.toString();
switch (codeText.text) {
case "Preference 01":
gotoAndStop(50);
break;
case "Preference 02":
gotoAndStop(51);
break;
case "Preference 03":
gotoAndStop(52);
break;
case "Preference 04":
gotoAndStop(53);
break;
default:
gotoAndStop(54);
}
}
请务必启用调试模式并在该模式下进行编译,以便在错误中获取行号等细节。此外,为避免将来出现BotMaster的投诉,请务必阅读https://stackoverflow.com/help/mcve