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跨域访问的安全沙箱问题,查资料了解到需要在服务端加上crossdomain.xml文件,即:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-do ......
利用Socket实现C++与Flex通信
一、C++服务器端
(用的是Visual Studio 2008(05,03的应该也可以,VC++的可能需要稍微改动))
代码如下:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib ......
今天做Flex时碰到flex和java交互的乱码问题,使用HTTPService无论是从Flex端传到Java端,还是反过来都乱码。调查了半天,终于搞定了。
以下是解决方案:
1.Flex端传到Java端
Flex端:encodeURIComponent(comment.text)
使用encodeURIComponent把参数转换为 application/x-www ......
自定义类(BroadCastMarquee.as):
package marquee
{
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.geom.Rectangle;
import flash.text.TextField;
import flash.text.TextFiel ......
var login:infoChange=infoChange(PopUpManager.createPopUp( this, infoChange , true));
login.x=250;
login.y=150;
login.userid.text=dg.selectedItem.aa;
login.username.text=dg.selectedItem.bb;
......