常见的加载外部文件时候碰到的问题

关于加载Spring加载外部文件属性.properties的问题 关于加载Spring加载外部文件属性.properties的问题 如果你今天遇到和我一样的问题,那么我恭喜你,你已经知道答案了。 第一个错误:Exception in thread "main" org.springframework.beans.factory. xml.XmlBeanDefinitionStoreException:  Line 1 in XML document fr 阅读详情

以前写的.发在经典的.放在这算是个总结吧.
先说加载文本。
这部分可以用的函数有loadVariables,loadVariablesNum,还有就是loadVars类和XML类。至于它们的使用方法,flash自带的帮助讲的很全面很全面了,我就没必要这里在帖了。想要说的是,loadVariables,loadVariablesNum只是两个加载文本的函数,他们只是具有加载外部文本的能力,而没有任何事件处理,flash无法得知外部文本文件是否已经被加载完成,因此需要依靠onEnterFrame,setInterval等不断循环事件或者函数,来检查变量是否存在,也可以用帧循环,才可以确定外部文件是否加载完成。
下面的代码没有达到想要的效果:

mc.loadVariables("1.txt");
//loadVariablesNum("1.txt",1)将变量加载到特定级别
gotoAndStop(mc.frame);
//gotoAndPlay(_level1.frame);
//文本内容为frame=20[/code]


PS 加载出现乱码解决方法:文本另存为utf-8编码或者是在第一帧加System.useCodepage=true;至于原因,自己google吧。在这我一时也解释不清。
要实现上面想达到的跳转,可以在文本中增加一标记变量,比较下面的代码和上面的不同之处,

stop();
this.createEmptyMovieClip("mc", this.getNestHighestDepth());
mc.loadVariables("2.txt");
//loadVariablesNum("1.txt",1)将变量加载到特定级别_level
this.onEnterFrame = function() {
 
if (mc.end == undefined) {
 
looding.text = "加载中.....";
 
} else {
 
loading.text = "加载完成";
 
delete this.onEnterFrame;
 
gotoAndStop(mc.frame);
 
}
};
//文本内容为frame=20&end=ok
//这里用setInterval()做循环判断也行,帮助上面有具体做法。[/code]

这样做起来可能会觉得有点麻烦,我只是要加载我想加载的东西,怎么还要增加一个变量?那就用loadVars类吧!“LoadVars 类在 Flash Player 6 中引入的,为与 Web 服务器交换 CGI 数据的常见任务提供一个更清晰、更面向对象的接口”,它使得加载外部文本变的更加灵活。
用loadVars类创建一个对象,使用onLoad,onData处理方法,都可以方便的达到判断加载完成的目的.而且loadVars对象还有getBytesTotal()和getBytesLoaded()方法,更加能直接明了的反应出下载的情况,在帮助里面找loadVars.呵呵。XML类也是同样道理,只是加载成功后的处理方法不同。

System.useCodepage = true;
var my_lv = new LoadVars();
my_lv.onLoad = function(success) {
 
if (success) {
 
trace("loaded!");
 
} else {
 
trace("loading");
 
}
};
my_lv.load("1.txt");[/code]

loadVars也可以加载xml文件,它能把xml文件中的全部内容做为字符串输出。

System.useCodepage = true;
var my_lv = new LoadVars();
my_lv.onData = function(src) {
 
if (src == undefined) {
 
trace("loading...");
 
} else {
 
a_txt.text = src;
 
}
};
my_lv.load("a.xml");

2。再说加载图片和flash影片
这部分可以用的函数有loadMovie,loadMovieNum,然后就是MovieCipLoader类。加载到影片剪辑的 SWF 文件或图像会继承该影片剪辑的位置、旋转和缩放属性,所以可以用影片剪辑的目标路径来定位加载的 SWF 文件。在这里我们把加载的MC叫做loader_mc,把被加载的MC叫做loaded_mc,当然loadMovieNum()用到的loader_mc就是_level了哦。
同前面的loadVariables和loadVariablesNum一样,loadMovie和loadMovieNum具备加载外部图象和影片的能力,而没有任何事件处理,flash无法得知外部图象和影片是否已经被加载完成,因此需要依靠onEnterFrame,setInterval等不断循环来检查,才可以确定外部图象和影片是否加载完成。
这里说一下用前两个函数时怎么判断加载完成,先说loadMovie();

var loader_mc = this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth());
loader_mc.loadMovie("1001.jpg");
this.onEnterFrame = function() {
 
if (loader_mc.getBytesLoaded() == loader_mc.getBytesTotal()) {
 
loader_mc._width = 200;
 
loader_mc._height = 200;
 
delete this.onEnterFrame;
 
}
}

呵呵。上面的代码貌似能做到调整长和宽的效果,测试就会发现场景中一片空白,在if语句里面trace(loader_mc._width )输出为0,怎么会这样?我在研究的过程中也困惑了半天呢,在这里面多谢网友神仔的提示,呵呵,下面说解决过程。
在onEnterFrame刚开始执行的瞬间,loader_mc.getBytesLoaded()和loader_mc.getBytesTotal()的输出都为0,0==0当然为true,所以上面的delete this.onEnterFrame在开始就执行了。也就是说上面的代码相当于

this.createEmptyMovieClip("loader_mc", this.getNextHighestDepth());
loader_mc.loadMovie("1001.jpg");
loader_mc._width = 200;
loader_mc._height = 200;

具体原因见最后说明,这里面有几种解决方法:
1。用loader_mc.getBytesLoaded() / loader_mc.getBytesTotal()==1来判断。由数学上的”0/任何不为0的数==0″,flash中trace(0/0)输出为false,这样也就间接判断了loader_mc.getBytesTotal()是不是为0,避免了0==0的问题。
2。我们也可以直接增加一个loader_mc.getBytesLoaded()大于0的判断条件。使用if (loader_mc.getBytesLoaded() == loader_mc.getBytesTotal()&&(loader_mc.getBytesLoaded()>0)来作用判断条件。

再说loadMovieNum(),这个函数是把图片或者是swf文件加载到_level上,也就是场景中,所以这个过程的loader_mc就是_level了。呵呵。解释一下_level,加载到 Flash Player 中的每个 SWF 文件都被分配一个级别。同一级别中只能存在一个swf,加载两个swf到一个级别,后者会覆盖前者。

/*
loadMovieNum("1001.jpg", 1);
_level1._width = 200;
_level1._height = 300;
//这样是不行的。
*/

loadMovieNum("1001.jpg", 1);
this.onEnterFrame = function() {
 
if (_level1.getBytesLoaded() == _level1.getBytesTotal()&&_level1.getBytesLoaded()>0) {
 
_level1._x=_level1._y=50;
 
_level1._width = 200;
 
_level1._height = 300;
 
delete this.onEnterFrame;
 
}
};

然后说flash MX 2004开始有的MovieClipLoader类,在说MovieClipLoader 之前,我们得先知道侦听器。侦听器是侦听事件的对象,当我们触发某一个事件的时候,该事件就被侦听器所侦听到,然后,该事件就由侦听器的方法来处理,当然,在MovieClipLoader侦听器对象中,已经提前写入处理事件的方法。这里写一个简单的例子:

this.createEmptyMovieClip("loader_mc", 1);
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
 
with (target_mc) {
 
_x = _y=20;
 
_width = _height=300;
 
}
};
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mclListener);
mcl.loadClip("1001.jpg",loader_mc);
//加载swf用mcl.loadClip("a.swf",loader_mc);[/code]

关于MovieClipLoader类的用法的学习,可以去看看awflasher的原创-完美的loading-吐血整理!aw的语言表达能力和flash水平远强于我,呵呵。我就不这里多说了,相信有了帮助和aw的教程,你很快就能掌握这个类的用法。

最后,只要你到这里的时候你明白了下面的解释我就算成功了。哈~~。加载外部文本,变量,图像或者是swf的时候,flash需要建立一个新的对象,有时候是创建一个新的来替代前面的,有的是新建一个对象,无论何种情况,都会导致程序的延迟,也就是不能马上生成这样的一个对象。代码的是从上到下顺序执行,一帧上的代码只能顺序执行一次,所以只有让它循环执行一下,才有时间判断加载的完成。简单的像这样

loader_mc.loadMovie("1001.jpg");
trace(loader_mc._width);//这时候输出的一定是加载前的loader_mc 的宽

可以知道trace()执行的时候这样一个对象还没有创建成功,也就是还没有得到要加载的MC或者图片的属性。所以这时执行loader_mc._width=300;loader_mc._height=400;是没有意义的。同样加载变量也是同样道理。

最后,想要说的是,加载文本推荐用loadVars类,加载图像或者是swf推荐用MovieClipLoader。

 
MovieClipLoader(动态加载图片的进度条) 在asp程序中用进度条显示动态加载图片的进度 立即下载

相关推荐

openeuler在线/离线安装docker服务

openeuler在线/离线安装docker服务

haixuti7的博客 1071

Flash读取外部数据之TXT文本

[Flash读取外部Txt文本数据]目的:熟悉Flash的基本代码,明白关键帧、空白关键桢的、影片剪辑最基本的读取:1、loadVariables()2、loadVariablesNum() 用法:1、loadVariables ("url" , target [, variables])2、loadVariablesNum ("url" ,level [, v

beimuaihui的专栏 2831

倍福--手动加入第三方伺服的配置

客户在没有硬件情况下,希望手动配置硬件,添加第三方驱动器,本文介绍其操作流程 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 操作步骤 3 2.1. 添加电机XML文件 3 2.2. 创建EtherCAT 3 2.3. 添加新建项 3 2.4. 选择型号 4 2.5. 关联NC轴 5 软硬件版本 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 TwinCAT控制制器,PC或者EPC,包括: 嵌入式控制器:CX5020-

weixin_41883890的博客 5325

Web Worker加载外部文件实践

Web Worker加载外部文件提高网站性能实践

Jinuss的博客 2050

AI Agent驱动的多模态情感分析方法:从BERT到Vision Transformer的探索

情感分析(Sentiment Analysis)是自然语言处理(NLP)与计算机视觉(CV)中一项重要任务。传统的情感分析主要依赖于文本数据,但在现实应用中,情感往往通过 语言、语音、表情、姿态 等多模态信号共同传达。因此,结合 多模态深度学习 的 AI Agent 在情感理解中具有广阔的前景。

一键难忘的博客 738

HTML音乐爱心3D旋转相册完整源码

HTML音乐爱心3D旋转相册完整源码

LilyCoder的博客 1379

flash as3,使用 URLLoader 加载外部文件

最近在给一个朋友帮忙,做了一个 flash 整站,站内的文章都采用 web service 方式获得,也就是用 URLLoader 进行加载,但是在加载的过程中总会出现各种异常,造成加载失败,在网上搜索了很多内容,却没找到如何进行重加载的方法,或者是我没发现吧。。。。没办法,只好自己想办法解决了。。。。由于 URLLoader 基本上没什么可以自定义的属性,为了能够确认 URLLoader 的状态,我的解决办法如下:首

文盲的专栏 5371

【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni 0 Patroni 对Python的版本要求 我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息 Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出) Version 3.0.2 Version 3.0.2 dropped support of Python older than 3.6. 版本3.0.2不再支持3.6版本以下的P

DBA之路的博客 1740

TP模板加载和导入外部文件

(3)在模板中如何加载外部文件  通常在头部或者尾部一些公共的地方,我们把他加载进来,避免每个页面都去写代码 使用 file的用法和display()的用法是一样的 display()常用的4中形式: 注意:显示全路径的格式下: 模板文件要有后缀 相对于哪个文件开始,相对于入口文件(入口文件就是刚开始的index.php) 语法:’’/> 注意:            1,

whjwhja6的专栏 9469

原理之(〇)3D Gaussian Splatting 数学原理与推导

3D Gaussian Splatting源于EWA的理论基础,本文重点从EWA模型出发,详细推导3D GS中的数学原理,加深对鱼眼相机畸变场景下的理解。

scott198512的博客 4157

基于STM32单片机设计的智能水温控制系统

本项目研究并实现了一种基于STM32单片机的智能水温控制系统。系统以STM32F103RCT6作为主控制器,通过DS18B20温度传感器实时采集水温数据,利用PID控制算法精确调节5V直流防水型70W加热棒的功率输出,确保水温恒定在设定范围内。此外,采用OLED显示屏显示当前水温和预设上限阀值,并集成ESP8266-WiFi模块与自研Android手机APP进行远程通信和控制。用户可通过本地按键或手机APP设置温度阀值,实现实时监控与智能化管理。整个系统设计旨在提高水资源利用效率,提升生活及工业用水环境的舒

8790

java加载外部文件,[Java教程]【加载外部文件】

[Java教程]【加载外部文件】0 2017-04-13 00:01:001.加载外部文件原本内容,将被替换加载外部文件//外部文件myjs$(document).ready(function(){$("button").click(function(){$('#test').load('files/new_file.txt') //加载外部文件})});//外部文件new_fil...

weixin_36048838的博客 437

ARM功耗管理软件之DVFS&AVS

思考:功耗管理软件栈及示例?WFI&WFE?时钟&电源树?DVFS&AVS?

AI-安全-功耗 1230

Flink 定时加载外部文件数据并广播

场景:刚做完的需求,一个kafka的流数据,需要和外部文件数据进行对比,这个外部文件存在每天更新的场景,所以需要再flink中定时读取,并用广播机制,广播到下游。 1、实时流: 基于flink1.9.2,必须使用FlinkKafkaConsumer FlinkKafkaConsumer ssConsumer = new FlinkKafkaConsumer(READ_TOPIC, new ...

泛音青年的博客 5007

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

加载外部文件的问题

今天发现一个问题。在flash ide里面,外部文件能够正确加载。但部署到网上后,外部文件就不能正确加载了。 找了好久,才发现是因为调用时使用的文件名和实际的外部文件名大小写不一致。在flash ide里,即使大小写不一致,也能运行。但部署到网上后,使用任何一款浏览器,都不能加载了。 希望大家记住。 ...

山外的网络自留地 111

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

udaf中加载外部文件

加载外部文件: 1.在shell中 要将文件加载进去 使用add file 例如: hive -e " add file ./pro_data/testfile.txt; add jars $CLASSIFIER_JAR; ... 说明:文件位置在./pro_data目录下 2.java调用时, 文件路径需要改变 例如: ToolsUtils.getDic(".

xiaokang06的专栏 519

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

idea如何读取配置properties文件以及加载外部文件目录下的配置

如何去读properties结尾的文件,方便程序的灵活配置参数 首先建立`PropertiesReader类一般放在util包下面 public class PropertiesReader { /** * 读取配置文件 */ private Properties getProperties(){ Properties p = null; try{ // 读取...

weixin_43662454的博客 2457

android studio 加载外部文件出现红色J

android studio 加载外部文件出现红色J

Venus 的博客 5611

exe4j打包生成exe文件详细使用教程,示例一个需要加载外部文件的GUI打包过程

注意:如果你的GUI工具存在以下问题: 1、加载外部文件数据(例如字典文件) 2、maven直接将程序与程序中使用到的第三方包一并打包 3、程序运行正常,但由加载的第三方包的jar包生成的exe文件一同打包时仍然存在依赖报错。......................................................

叼着零食打架 1万+

在Flash的AS2中加载外部文件(图片/SWF/文本)的办法

<br />Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件 .现总结如下:<br />[用法]:loadMovie("url",target [, variables]) 和 loadMovieNum("url",level [, variables])<br />[功能]: 函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个对

寻找甘当科学家的女人/男人 5355
上一篇: 从Google取消高额下线分成制度看08网赚前景
下一篇: GCC for Win32开发环境介绍(1)
wx红杉树
博客等级 码龄21年 383粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值