Flex 重复加载图片对内存和性能的影响
采用Image重复加载图片极大影响性能,并且占用大量内存,下面是我对比验证的代码。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
initialize="loadImage()">
<mx:Button x="122"
y="94"
label="add Low memory Images"
click="addLowMemImages()"/>
<mx:Button x="22"
y="94"
label="add Images"
click="addImages()"/>
<mx:Script>
<!--[CDATA[
import mx.controls.Image;
private var pairImage:BitmapData=new BitmapData(100, 100, false, 0x000000FF);
private function loadImage():void
{
var imageLoader:Loader=new Loader();
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoadComplete);
imageLoader.load(new URLRequest("pair.jpg"));
}
private function imageLoadComplete(event:Event):void
{
pairImage=event.target.content.bitmapData;
}
//低内存高性能方法
private function addLowMemImages():void
{
var canvas:Canvas;
for (var i:int=0; i < 30; i++)
{
for (var j:int=0; j < 30; j++)
{
canvas=new Canvas();
canvas.width=40;
canvas.height=40;
canvas.x=50 * i;
canvas.y=50 * j;
canvas.graphics.beginBitmapFill(pairImage);
canvas.graphics.drawRect(0, 0, 40, 40);
canvas.graphics.beginFill(0xFF0000, 0.5);
canvas.graphics.drawCircle(20, 20, 10);
canvas.graphics.endFill();
images.addChild(canvas);
}
}
}
//慢且占内存高
private function addImages()
{
var canvas:Canvas;
var img:Image;
for (var i:int=0; i < 10; i++)
{
for (var j:int=0; j < 10; j++)
{
canvas=new Canvas();
canvas.width=40;
canvas.height=40;
canvas.x=50 * i;
canvas.y=5
相关文档:
解决使用Flex 无法使用trace的问题
出现了使用Debug功能出现了无法使用trace的问题
这个问题说明你的Flash Player 10 不是调试版本
提供一下Adobe Flas Player 10调试版本的地址....
希望能对大家有帮助
http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe
......
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/08/07/creating-full-screen-flex-applications/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init(event)" viewSourceURL="srcview/index.html">
& ......
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">
<mx:Panel width="458" height="313" layout="absolute">
<mx:Label id="lbl" x="19" y="10" text="" width="171" height="20"/>
<mx:DataGrid id="dg" x="19" y="58" dataProvider="{arr}" editable="true" ......
今天做Flex时碰到flex和java交互的乱码问题,使用HTTPService无论是从Flex端传到Java端,还是反过来都乱码。调查了半天,终于搞定了。
以下是解决方案:
1.Flex端传到Java端
Flex端:encodeURIComponent(comment.text)
使用encodeURIComponent把参数转换为 application/x-www ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application fontSize="12" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
public var treeXml: XML = <nodes name="所有">
&n ......