bytearray와 bitmapdata를 동시에 써서 구현하는겁니다!
sharedobjects는 movieclip이나 bitmapdata등 시각적 요소에 관여하는건 저장 못하나보아요
그래서 bitmapdata를 바이트 데이터로 변환해서 bytearray에 집어넣고(getpixels)
bytearray는 배열이니까 sharedobjects에 저장이 가능한거지요! 우하하하하하 신난다
스크립트입니다-
import flash..bitmapdata;
import flash..bitmap;
import flash..shape;
import flash.net.sharedobject;
import flash.utils.bytearray;
var s:sharedobject = sharedobject.getlocal("bm4","/")
var k:bitmapdata = new bitmapdata(550,400,true,0)
if(s.data.drawn == undefined){
s.data.drawn = new bytearray()
}
else{
k.setpixels(k.rect,s.data.drawn)
}
var kk:bitmap = new bitmap(k)
var md:boolean = false
addchild(kk)
var a:shape = new shape()
stage.addeventlistener("enterframe",savit)
function savit(e){
a.graphics.linestyle(1,0x000000)
a.graphics.moveto(mousex,mousey);
var aa:bytearray = new bytearray()
aa = k.getpixels(k.rect)
aa.position = 0
s.data.drawn = aa
s.flush()
}
stage.addeventlistener("mousedown",mdd)
function mdd(e){
md = true
}
stage.addeventlistener("mouseup",muu)
function muu(e){
md = false
}
stage.addeventlistener("mousemove",mov)
function mov(e)
{
if(md == true)
{
a.graphics.lineto(mousex,mousey);
k.draw(a);
a.graphics.clear();
}
}
아, 그림은 자동 저장이니까
다시 실행하기 등 해보세요
그러면 불러와질거에요
|