时总是显示不全,网页有时候会一直刷新多次刷新才能完

差不多所有浏览器开网页都显示不全,全是有些图片不能显示,多次刷新,效果会好点。只有火狐差不多能全显示!-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
差不多所有浏览器开网页都显示不全,全是有些图片不能显示,多次刷新,效果会好点。只有火狐差不多能全显示!
来源:互联网 发表时间: 15:55:38 责任编辑:王亮字体:
为了帮助网友解决“差不多所有浏览器开网页都显示不全,全是有些图片不能显示,多次刷新,效果会好点。只有火狐差不多能全显示!”相关的问题,学网通过互联网对“差不多所有浏览器开网页都显示不全,全是有些图片不能显示,多次刷新,效果会好点。只有火狐差不多能全显示!”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:差不多所有浏览器开网页都显示不全,全是有些图片不能显示,多次刷新,效果会好点。只有火狐差不多能全显示!,具体解决方案如下:解决方案1:求高手解决,网速不慢,flash是最新的。解决方案2:换过浏览器,或者是系统问题
1个回答1个回答1个回答1个回答1个回答1个回答6个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号后使用快捷导航没有帐号?
只需一步,快速开始
查看: 3256|回复: 15
flash加载外部数据只有在刷新时才显示的问题?
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
我正在做一个项目其中出来了一个问题,就是flash中大量的初始化数据都是从外部文件调用的,确切的说是通过ASP文件打印出数据库数据然后再又flash读取的,现在出现的问题是我在本机测试时一切都正常,flash一打开这些数据都立即加载上了,但放到服务器上时就总要刷新一次页面才显示,而且页面关闭再打开的话,还是要再刷新才显示,当网速慢是更是要刷新多次才能显示,于是我把要加载的数据直接转成TXT文件让FLASH读取,可是感觉并没有实质性的解决这个问题,我想知道这是为什么?
我的flash加载外部文件数据是通过LOAD中的ONLOAD事件侦听来实现的
在线等解答,不知道我是否有什么没有说清楚的请回复时说明,我会再具体说明情况!
我还是附上部分代码吧
setLoadingMV(&loading Config&);& &//这是个简单的LOADING动画
var loadConfig:LoadVars = new LoadVars();
//-----------------加载设置-----------------
loadConfig.onLoad = function(success) {
& & & & if (success) {
& & & & & & & & ..............& & //下面的变量是读取的外部数据
& & & & & & & & _root.oriRate = Number(loadConfig.oriRate);
& & & & & & & & _root.maxRate = Number(loadConfig.maxRate);
& & & & & & & & _root.oriLevel = Number(loadConfig.oriLevel);
& & & & & & & & _root.maxLevels = Number(loadConfig.maxLevels);
& & & & & & & & _root.nowRate = _root.oriR
& & & & & & & & initialize();
& & & & & & & & _root.nextFrame();
& & & & & & & & delete loadC
& & & & } else {
& & & & & & & & trace(&load error&);
loadConfig.load(_root.siteAddress+&config.txt&);& &&&//这个文件开始是个ASP的文件通过response.write把变量写在页面上,后来我直接改成了TXT文件。
各位请给我指点一下迷津!
[[i] 本帖最后由 soat 于
10:40 编辑 ]
UID390132在线时间 小时积分28274帖子离线17248 天注册时间
这段代码没有问题
UID139222在线时间 小时积分526帖子离线17248 天注册时间
高级会员, 积分 526, 距离下一级还需 474 积分
加个刷新语句,像F5一样,不知道行不行。
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
我也知道没有问题,可就是在服务器端显示的时候那总是停留在LOADING动画中而不进入下一帧,这是什么原因能?
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
其实网速慢出现这个问题我还能理解,可是有时候在本机测试也一样会出现停留的问题,我都直接调用TXT的文件了为什么还是加载不上呢?
UID390132在线时间 小时积分28274帖子离线17248 天注册时间
1 有可能是html文件有问题
2 代码不全,不晓得是不是有其它地方的代码对这部分有影响
3 万般无奈之下,只能理解是RPWT了。
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
RPWT 请问这个是什么意思?
UID336743在线时间 小时积分7799帖子离线17248 天注册时间
页面加载完毕再装载swf,或者页面初始化完毕后,调用flash里的一个函数,这个函数就是用来控制加载loadConfig.load(_root.siteAddress+&config.txt&);
一般情况下,都不会出现你这种问题,你试试看
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
我里面还有一部分代码,是动态调用的数据库的内容,这些动态的信息是通过FLASH传出便能然后asp的程序查询数据库,再把查询出的内容用response.write写在页面上让FLASH来读取,那么这个地方使用了一个方式就是在FLASH读取这个ASP页面的内容的时候传递了一个随机变量,因为如果不传递这个随机变量那么请求的这个ASP页面的内容就不会有变化
我不知道对于读取TXT、XML这样的不和数据库交互的文件是否也存在这个问题?
UID390132在线时间 小时积分28274帖子离线17248 天注册时间
再强调一下,楼主贴出来的代码和现在的文字叙述中的操作,绝对不会导致出现楼主提到的问题。
把你的所有文件发上来,让有兴趣的朋友帮着看一下。
如果文件很宝贵,就做个简单的例子发上来吧。
如果例子也不愿意做,就继续猜
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
我很乐意把内容公开,只是这是一个在建项目,有些东西不方便全部透露,主要是有安全隐患,我把代码处理一下发个让大家帮忙研究一下!
希望能最终能有个问题的解答
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
这就是一个FLASH地图
System.useCodepage =
#include &../as/browseFunction2.as&
//-----------------全局变量-----------------
//最小层级//现处层级//最大层级///最小比率//现处比率//最大比率//站点地址//现处X坐标//现处Y坐标
var oriLevel:N
var nowLevel:N
var maxLevels:N
var oriRate:N
var nowRate:N
var maxRate:N
var nowX:N
var nowY:N
//站点总数//站点类别总数//线路总数
var totalSites = 0;
var totalTypes = 0;
var totalBuses = 0;
///////////////
var manage = 0;
var manageStep = 0;
//------------------------------------------
var loadListener:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
//-----------------加载地图-----------------
loadListener.onLoadComplete = function(target_mc:MovieClip):Void&&{
& & & & target_mc._visible =
& & & & _root.mcLoader.removeListener(loadListener);
& & & & delete _root.mcL
& & & & delete _root.loadL
& & & & _root.nextFrame();
_root.mcLoader.addListener(loadListener);
_root.hit.useHandCursor =
_root.hit.enabled =
setLoadingMV(&loading Map&);
mcLoader.loadClip(&map.swf&,_root.rateMC.dragMC.map);
var loadSiteAddress = new XML();
loadSiteAddress.onLoad = function(success) {
& & & & if (success) {
& & & & & & & & _root.siteAddress = loadSiteAddress.firstChild.attributes.siteA
loadSiteAddress.load(&siteAddress.xml&);
setLoadingMV(&loading Config&);
var loadConfig:LoadVars = new LoadVars();
//-----------------加载设置-----------------
loadConfig.onLoad = function(success) {
& & & & if (success) {
& && && && && && && && && && &&&_root.loadMap_X0 = 1484 + 200; //定义地图中心点& & & & & & & &
& && && && && && && && && && &&&_root.loadMap_Y0 = 652; //定义地图中心点
& & & & & & & & _root.oriRate = Number(loadConfig.oriRate);
& & & & & & & & _root.maxRate = Number(loadConfig.maxRate);
& & & & & & & & _root.oriLevel = Number(loadConfig.oriLevel);
& & & & & & & & _root.maxLevels = Number(loadConfig.maxLevels);
& & & & & & & & _root.nowRate = _root.oriR
& & & & & & & & initialize();
& & & & & & & & _root.nextFrame();
& & & & & & & & delete loadC
& & & & } else {
& & & & & & & & trace(&load error&);
loadConfig.load(_root.siteAddress+&config.txt&);
setLoadingMV(&loading Types&);&&
var loadTypes:LoadVars = new LoadVars();
loadTypes.onLoad = function(success) {
& & & & if (success) {
& & & & & & & & if (Number(loadTypes.returnValue)) {
& & & & & & & & & & & & _root.totalTypes = loadTypes.totalT
& & & & & & & & & & & & var temp1:Array = loadTypes.record.split(&$&);
& & & & & & & & & & & & siteTypes = _root.showTools.showTools.siteT
& & & & & & & & & & & & var typeClickListener = new Object();
& & & & & & & & & & & & typeClickListener.click = function() {
& & & & & & & & & & & & & & & & setSites();
& & & & & & & & & & & & };
& & & & & & & & & & & &
& & & & & & & & & & & & for (i=0; i&temp1. i++) {
& & & & & & & & & & & & & & & & temp2 = temp1[i].split(&|&);
& & & & & & & & & & & & & & & & var nowType = siteTypes.scrollMV.attachMovie(&CheckBox&, &type&+Number(temp2[3]), Number(temp2[3]), {_x:0, _y:20*(Number(temp2[3])-1), label:String(temp2[1]), selected:true, typeID:Number(temp2[0]), picUrl:String(temp2[2]),typeOrder:Number(temp2[3])});
& & & & & & & & & & & & & & & & nowType._visible = (nowType._y&250 && nowType._y&=0) ? true :
& & & & & & & & & & & & & & & & nowType.addEventListener(&click&,typeClickListener);
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & &
& & & & & & & & & & & & if (temp1.length&=12) {
& & & & & & & & & & & & & & & & siteTypes.scrollBar._visible =
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & //main
& & & & & & & & & & & & & & & & siteTypes.scrollBar.btnScroll._height=40000/(temp1.length*20);
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & & & & & _root.nextFrame();
& & & & & & & & & & & & _root.loadingMV.removeMovieClip();
& & & & & & & & & & & & delete loadT
& & & & & & & & } else {
& & & & & & & & & & & & trace(&no types&);
& & & & & & & & }
& & & & } else {
& & & & & & & & trace(&load error&);
loadTypes.load(_root.siteAddress+&getTypes.asp?type=all&);
var siteClickListener = new Object();
siteClickListener.change = function(eventObject) {
& & & & X = -(eventObject.target.value.siteX-_root.loadMap_X0);
& & & & Y = -(eventObject.target.value.siteY-_root.loadMap_Y0);
& & & & _root.nowLevel = eventObject.target.value.siteL
& & & & moveT(X,Y,_root.nowLevel);
loadSites(&all&);
browseFunction.as&&//在上面用的类这里都罗列下来
//-----------------导入动画-----------------
function setLoadingMV(string:String) {
& & & & loadingMV = _root.attachMovie(&loadingMV&, &loadingMV&, 999, {_x:Stage.width/2, _y:Stage.height/2});
& & & & loadingMV.loadText = string+&.&;
& & & & temp = 0;
& & & & loadingMV.onEnterFrame = function() {
& & & & & & & & if (++temp%3 == 0) {
& & & & & & & & & & & & this.loadText += &.&;
& & & & & & & & & & & & if (temp&=18) {
& & & & & & & & & & & & & & & & this.loadText = string+&.&;
& & & & & & & & & & & & & & & & temp = 0;
& & & & & & & & & & & & }
& & & & & & & & }
& & & & };
//-----------------导入站点-----------------
_global.loadSites = function(type:String, siteID:Number) {
& & & & _root.setLoadingMV(&loading Sites&);
& & & & var loadSites:LoadVars = new LoadVars();
& & & & loadSites.onLoad = function(success) {
& & & & & & & & if (success) {
& & & & & & & & & & & & if (Number(loadSites.returnValue)) {
& & & & & & & & & & & & & & & & var sites = _root.rateMC.dragMC.
& & & & & & & & & & & & & & & & switch (type) {
& & & & & & & & & & & & & & & & case &all& :& && & //显示所有站点
& & & & & & & & & & & & & & & & & & & & for (var i=1; i&=sites.getNextHighestDepth(); i++) {
& & & & & & & & & & & & & & & & & & & & & & & & trace(i)
& & & & & & & & & & & & & & & & & & & & & & & & removeMovieClip(sites.getInstanceAtDepth(i));
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & _root.totalSites = loadSites.totalS
& & & & & & & & & & & & & & & & & & & & var temp1:Array = loadSites.record.split(&$&);
& & & & & & & & & & & & & & & & & & & & for (var i=0; i&temp1. i++) {
& & & & & & & & & & & & & & & & & & & & & & & & var temp2:Array = temp1[i].split(&|&);
& & & & & & & & & & & & & & & & & & & & & & & & var nowSite = _root.rateMC.dragMC.sites.attachMovie(&site&, &site&+(i+1), i+1, {siteID:Number(temp2[0]), siteType:Number(temp2[2]), siteX:Number(temp2[3]), siteY:Number(temp2[4]), siteLevel:Number(temp2[5]), siteMemo:String(temp2[6]), siteIsShow:Number(temp2[7]), siteLink:String(temp2[8]), siteNO:String(temp2[9]), siteArea:String(temp2[10]),siteUrl:String(temp2[11]), _visible:false});
& & & & & & & & & & & & & & & & & & & & & & & & nowSite.siteShape.attachMovie(&site&+Number(temp2[2]), &shape&, 1);
& & & & & & & & & & & & & & & & & & & & & & & & nowSite.siteName.autoSize = &center&;
& & & & & & & & & & & & & & & & & & & & & & & & nowSite.siteName = String(temp2[1]);
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & case &single& :& & //修改站点后会用到
& & & & & & & & & & & & & & & & & & & & var temp2:Array = loadSites.record.split(&|&);
& & & & & & & & & & & & & & & & & & & & if(_root.lstBtn){
& & & & & & & & & & & & & & & & & & & & & & & & //var nowSite = _root.rateMC.dragMC.sites.attachMovie(&site&, _root.nowBtn._name, _root.lstBtn.getDepth(), {siteID:Number(temp2[0]), siteType:Number(temp2[2]), siteX:Number(temp2[3]), siteY:Number(temp2[4]), siteLevel:Number(temp2[5]), siteMemo:String(temp2[6]), siteIsShow:Number(temp2[7]), siteLink:String(temp2[8]), siteNO:String(temp2[9]), siteArea:String(temp2[10]),siteUrl:String(temp2[11]), _visible:false});
& & & & & & & & & & & & & & & & & & & & & & & & var nowSite = _root.rateMC.dragMC.sites.attachMovie(&site&, &site&+Number(temp2[0]), _root.lstBtn.getDepth(), {siteID:Number(temp2[0]), siteType:Number(temp2[2]), siteX:Number(temp2[3]), siteY:Number(temp2[4]), siteLevel:Number(temp2[5]), siteMemo:String(temp2[6]), siteIsShow:Number(temp2[7]), siteLink:String(temp2[8]), siteNO:String(temp2[9]), siteArea:String(temp2[10]),siteUrl:String(temp2[11]), _visible:false});
& & & & & & & & & & & & & & & & & & & & & & & & removeMovieClip(_root.nowBtn);
& & & & & & & & & & & & & & & & & & & & & & & & _root.lstBtn=_root.nowBtn=undefined
& & & & & & & & & & & & & & & & & & & & }else{
& & & & & & & & & & & & & & & & & & & & & & & & nowSite = _root.rateMC.dragMC.sites.attachMovie(&site&, _root.nowBtn._name, _root.nowBtn.getDepth(), {siteID:Number(temp2[0]), siteType:Number(temp2[2]), siteX:Number(temp2[3]), siteY:Number(temp2[4]), siteLevel:Number(temp2[5]), siteMemo:String(temp2[6]), siteIsShow:Number(temp2[7]), siteLink:String(temp2[8]), siteNO:String(temp2[9]), siteArea:String(temp2[10]),siteUrl:String(temp2[11]), _visible:false});
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & nowSite.siteShape.attachMovie(&site&+Number(temp2[2]), &shape&, 1);
& & & & & & & & & & & & & & & & & & & & nowSite.siteName.autoSize = &center&;
& & & & & & & & & & & & & & & & & & & & nowSite.siteName = String(temp2[1]);
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & case &new& :& &//添加站点后会用到
& & & & & & & & & & & & & & & & & & & & var temp2:Array = loadSites.record.split(&|&);
& & & & & & & & & & & & & & & & & & & & _root.totalSites++;
& & & & & & & & & & & & & & & & & & & & nowSite = _root.rateMC.dragMC.sites.attachMovie(&site&, &site&+_root.totalSites, _root.totalSites, {siteID:Number(temp2[0]), siteType:Number(temp2[2]), siteX:Number(temp2[3]), siteY:Number(temp2[4]), siteLevel:Number(temp2[5]), siteMemo:String(temp2[6]), siteIsShow:Number(temp2[7]), siteLink:String(temp2[8]), siteNO:String(temp2[9]), siteArea:String(temp2[10]), siteUrl:String(temp2[11]), _visible:false});
& & & & & & & & & & & & & & & & & & & & nowSite.siteShape.attachMovie(&site&+Number(temp2[2]), &shape&, 1);
& & & & & & & & & & & & & & & & & & & & nowSite.siteName.autoSize = &center&;
& & & & & & & & & & & & & & & & & & & & nowSite.siteName = String(temp2[1]);
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & setSites();
& & & & & & & & & & & & & & & & _root.nextFrame();
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & trace(&load error&);
& & & & & & & & & & & & }
& & & & & & & & & & & & removeMovieClip(_root.loadingMV);
& & & & & & & & }
& & & & };
& & & & //loadSites.load(_root.siteAddress+&getSites.aspx?type=&+type+&&siteID=&+siteID+&&randomNumber=&+random(1000));
& & & & loadSites.load(_root.siteAddress+&getSites.txt&);
//------------------初始化------------------
_global.initialize = function() {
& & & & _root.nowRate = _root.oriR
& & & & _root.nowLevel = _root.oriL
& & & & _root.rateMC._x = _root.hit._x = Stage.width/2;
& & & & _root.rateMC._y = Stage.height/2;
& & & & _root.hit._width = Stage.
& & & & _root.hit._height = Stage.
& & & & dragMC = _root.rateMC.dragMC;
& & & & setMC(dragMC.map, -_root.loadMap_X0, -_root.loadMap_Y0);
& & & & setMC(dragMC.sites, dragMC.map._x, dragMC.map._y);
& & & & setMC(dragMC.buses, dragMC.map._x, dragMC.map._y);
& & & & dragMC.sites._visible= dragMC.buses._visible= dragMC.map._visible=
& & & & _root.hit.enabled =
& & & & moveT(0,0,_root.nowLevel);
& & & & _root.hit.onPress = function () {
& & & & & & & & _root.rateMC.dragMC.startDrag ();
& & & & };
& & & & _root.hit.onRelease = function () {
& & & & & & & & _root.rateMC.dragMC.stopDrag ();
& & & & }& & & &
[[i] 本帖最后由 soat 于
11:23 编辑 ]
UID390132在线时间 小时积分28274帖子离线17248 天注册时间
回调函数被封装到了函数中,这往往是非常不可靠的。 我个人认为问题就出在它身上
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
终于又回复了,能不能给我讲解具体点啊,举个解决的小例子?
先在这里谢过了!
UID390132在线时间 小时积分28274帖子离线17248 天注册时间
把它从函数中拿出来,像顶楼那样
另外,这个代码总感觉不规范的地方太多了
UID342909在线时间 小时积分274帖子离线17248 天注册时间
中级会员, 积分 274, 距离下一级还需 226 积分
能通过QQ和你交流吗?或者你们的QQ群都可以,这样问起来好累
我的QQ号,希望能加我!
Powered bywin7系统有时候刷新有个{刷新E}留在桌面上不能消失是那里的问题我想知道原因?
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;求助!!!经常打开网页都这样显示不完整,刷新一遍才行。_chrome吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:147,875贴子:
求助!!!经常打开网页都这样显示不完整,刷新一遍才行。收藏
相同网页用ie就不会那样,是chrome的问题吗,有没有什么决解对策。。。
处女星号邮轮由上海出发前往大阪,畅享大阪自然美景和饕餮美食
我每天会经常清理缓存的,这个问题还是一直出现。
网络不稳定
停用插件扩展再测 骚年,点一下右边网站我们再说
百分百网络问题
那就去用IE吧
网络问题吧。ctrl+F5 强制刷新。
一直遇到这个问题,有没有解决
是不是装adsafe了?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或传图太麻烦,有图版见
用画对话框时窗体和控件显示不全,后刷新的部分会破坏掉之前显示的部分。开发板ALENTEK MiniSTM32V2.0,显示屏ALENTEK&7'
TFTLCD MODULE,主芯片STM32F103RB。
下面记录一下解决过程和思路。
ALENTEK的MiniSTM32开发板自带有2.8寸屏的uCOS+uCGUI例程,但是没整合触摸功能。7寸屏有基本的显示和触摸例程,没有uCGUI例程。
先是在网上找直接能用的7寸屏整合uCGUI的例程,openedv上有几个,下载下来直接编译没问题,但是全部重新编译的话无法通过,显示的也只是基本的画线画色块功能,没有实现对话框的显示。
同时了解到uCGUI的源码中附带有VC仿真的工程,意识到这可是一大利器,花了些时间熟悉了使用方法和其中的各种例程。
同时还了解到有个叫uCGUIBuilder的图形化设计界面,可以快速创建对话框,也是一大利器。
既然没有没有7寸屏直接能用的例程,那就考虑自己移植看看吧,反正屏幕的底层驱动例程都有,移植过程看起来也比较方便,具体步骤参考网上各种移植说明。
运行结果如图1-4,可以看到是图1-2的按钮控件显示完之后整个屏幕就被刷新没了。
拿同样的代码在VC上仿真出来却是正常的效果就像图1-5那样。
这样就好办了,有一个正常的和一个不正常的,那只要对照着找差异就行了,VC和开发板同时调试,单步跟踪到一处变量差异,在图2-4的LCD_DrawBitMap(具体调用之层次关系见图2-1)执行完后观察到VC和MDK中_ClipContext.CurRect的值不一致,
具体为在调用LCD_DrawBitMap前和进入LCD_DrawBitMap后_ClipContext.CurRect的值发生了变化,这本身应该只是一个参数传递的过程,不应该引起任何变量的变化。于是百度关键字参数传递错误,找了一篇帖子(),高人总结出了可能的几种因素,其一就是堆栈大小设置是否正确。继续百度STM32堆栈大小设置,原来设置是在启动文件中(图2-6),图2-6
可这头文件一直是官方提供的,都是直接拿来用就行了,怎么这次还要自己作下修改?改大了堆栈大小之后再编译下载果然显示就正常了。
后来又进一步验证,在LCD_DrawBitMap是进入反汇编调试,发现是内核寄存器的记录的某些地址在进入LCD_DrawBitMap之前就已经不对了,可能是之前什么地方堆栈不够引起了混乱?
自定义堆栈大小后:
默认堆栈大小时:
总结一下,能够解决这问题很重要的两点:一是用的是开源代码可以层层跟踪到出问题的具体位置,二是有一个正常的工程可以作对比,否则只靠一个出错的工程要分析出来错误位置真不知要到什么时候了。
话说堆栈大小设置的问题大家都没有遇到过吗?看了很多的资料从来没看到过需要修改堆栈大小这一项。
用画对话框时窗体和控件显示不全,后刷新的部分会破坏掉之前显示的部分。开发板ALENTEK MiniSTM32V2.0,显示屏ALENTEK&7'
TFTLCD MODULE,主芯片STM32F103RB。
下面记录一下解决过程和思路。
ALENTEK的MiniSTM32开发板自带有2.8寸屏的uCOS+uCGUI例程,但是没整合触摸功能。7寸屏有基本的显示和触摸例程,没有uCGUI例程。
先是在网上找直接能用的7寸屏整合uCGUI的例程,openedv上有几个,下载下来直接编译没问题,但是全部重新编译的话无法通过,显示的也只是基本的画线画色块功能,没有实现对话框的显示。
同时了解到uCGUI的源码中附带有VC仿真的工程,意识到这可是一大利器,花了些时间熟悉了使用方法和其中的各种例程。
同时还了解到有个叫uCGUIBuilder的图形化设计界面,可以快速创建对话框,也是一大利器。
既然没有没有7寸屏直接能用的例程,那就考虑自己移植看看吧,反正屏幕的底层驱动例程都有,移植过程看起来也比较方便,具体步骤参考网上各种移植说明。
运行结果如图1-4,可以看到是图1-2的按钮控件显示完之后整个屏幕就被刷新没了。
拿同样的代码在VC上仿真出来却是正常的效果就像图1-5那样。
这样就好办了,有一个正常的和一个不正常的,那只要对照着找差异就行了,VC和开发板同时调试,单步跟踪到一处变量差异,在图2-4的LCD_DrawBitMap(具体调用之层次关系见图2-1)执行完后观察到VC和MDK中_ClipContext.CurRect的值不一致,
具体为在调用LCD_DrawBitMap前和进入LCD_DrawBitMap后_ClipContext.CurRect的值发生了变化,这本身应该只是一个参数传递的过程,不应该引起任何变量的变化。于是百度关键字参数传递错误,找了一篇帖子(),高人总结出了可能的几种因素,其一就是堆栈大小设置是否正确。继续百度STM32堆栈大小设置,原来设置是在启动文件中(图2-6),图2-6
可这头文件一直是官方提供的,都是直接拿来用就行了,怎么这次还要自己作下修改?改大了堆栈大小之后再编译下载果然显示就正常了。
后来又进一步验证,在LCD_DrawBitMap是进入反汇编调试,发现是内核寄存器的记录的某些地址在进入LCD_DrawBitMap之前就已经不对了,可能是之前什么地方堆栈不够引起了混乱?
自定义堆栈大小后:
默认堆栈大小时:
总结一下,能够解决这问题很重要的两点:一是用的是开源代码可以层层跟踪到出问题的具体位置,二是有一个正常的工程可以作对比,否则只靠一个出错的工程要分析出来错误位置真不知要到什么时候了。
话说堆栈大小设置的问题大家都没有遇到过吗?看了很多的资料从来没看到过需要修改堆栈大小这一项。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:659次
排名:千里之外}

我要回帖

更多关于 ajax 防止多次刷新 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信