FlashDevelop 遇到的Process not responding 问题
在用swf加载另一个swf文件时遇到了一个很有趣的问题,两个文件都在F盘中,路径不同,分别是:F:\SWF_1\bin\SWF1.swf和F:\SWF_2\bin\SWF2.swf,SWF2中有个加载函数,很简单,加载完成后添加到舞台上,但在运行时总是提示Process not responding,然后FlashPlayer就死了,断点一看,SWF2中的文档类一直在执行,导致fp挂掉,找了半天也不知道是什么原因,后来把SWF1文件直接移到F:上再加载,一切正常,代码如下:
SWF1的代码:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.system.Security;
import flash.text.TextField;
import flash.text.TextFieldType;
/**
* ...
* @author me
*/
public class Main extends Sprite
{
public function Main():void
{
Security.allowInsecureDomain("*");
Security.allowDomain("*");
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var tf:TextField = new TextField();
tf.text = "大多发点斐然";
tf.restrict = "\u33a0-\uf7fe";
tf.type = TextFieldType.INPUT;
tf.width = 1000;
tf.height = 500;
addChild(tf);
var ball:BigBall = new BigBall();
addChild(ball);
}
}
}
SWF2的代码如下:
//加载类
package load
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Stage;
import flash.errors.IOError;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
/**
* ...
* @author me
*/
public class LoadSWF extends Sprite
{
public function LoadSWF()
{
}
public function load(url:String):void
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleted);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
loader.load(new URLRequest(url));
}
private function onCompleted(e:Event):void
{
var loader:Loader = e.target.loader as Loader;
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onCompleted);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
addChild(loader);
//process(loader);
}
private function onError(e:IOErrorEvent):void
{
var loader:Loader = e.target.loader as Loader;
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onCompleted);
loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onError);
trace(e.toString());
}
private function onProgress(e:ProgressEvent):void
{
trace(e.bytesLoaded + "/" + e.bytesTotal);
}
private function process(loader:Loader):void
{
//_stage.addChild(loader);
}
}
}
//文档类如下:
package
{
import flash.display.Sprite;
import flash.events.Event;
import load.LoadSWF;
/**
* ...
* @author me
*/
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
load();
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
private function load():void
{
var loadSWF:LoadSWF = new LoadSWF();
//loadSWF.load("F:\\SWF_1\\bin\\GameLogin.swf"); //此路径下加载没有问题
loadSWF.load("F:\\SWF_1\\bin\\SWF1.swf"); //这样加载FlashDevelop一直提示Process not responding,过会就直接挂了
//loadSWF.load("F:\\SWF1.swf"); //此路径下加载没有问题
addChild(loadSWF);
}
}
}
这个FlashPlayer的问题?
浙公网安备 33010602011771号