+ -
当前位置:首页 → 问答吧 → 平铺背景CPU资源占用过高,请帮忙看看

平铺背景CPU资源占用过高,请帮忙看看

时间:2010-11-07

来源:互联网

import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.display.Bitmap;

stage.showDefaultContextMenu = false;

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
//stage.scaleMode = StageScaleMode.EXACT_FIT;

stage.addEventListener(Event.RESIZE, resizeHandler);

stage.dispatchEvent(new Event(Event.RESIZE));
var _rootBackGround:Sprite;
var backImage:MovieClip = new MovieClip();
this.addChild(backImage);

var loader:Loader = new Loader();
loader.load(new URLRequest("swfbg.png"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,showLoadResult);


function resizeHandler(e:Event):void
{
       //banner.y = 93;
       banner.x = stage.stageWidth / 2 - banner.width / 2;
       trace(banner.x);
}

function showLoadResult(event:Event):void
{
       var _bitmap:Bitmap = Bitmap(loader.content);
       var matrix:Matrix = new Matrix(1,0,0,1,this.stage.stageWidth / 2,93);
       var sampleSprite:Sprite = new Sprite();
       sampleSprite.graphics.beginBitmapFill(_bitmap.bitmapData, matrix , true , true);
       sampleSprite.graphics.drawRect(0, 0, 2000, 2000);
       sampleSprite.graphics.endFill();
       backImage.addChild(sampleSprite);
       setChildIndex(backImage,0);
}


CPU占用那叫一个高啊,请高手帮忙看看,多谢~

作者: enumen   发布时间: 2010-11-07

能力有限我也不是很清楚也許問題在
beginBitmapFill 不用這個方法試試呢。

作者: enc0717   发布时间: 2010-11-07

貌似
var wid:int = stage.stageWidth;
导致持续占用内存,任务管理器里显示只要开着这个SWF,内存占用就持续增加

经过测试,只有IE8下内存狂涨,CHROM和firefox里内存都不增加,郁闷了

作者: enumen   发布时间: 2010-11-07