- import code.*;
- import common.PhotoEdit;
- import common.TextEdit;
- import data.*;
- import flash.display.*;
- import flash.events.MouseEvent;
- import flash.net.URLRequest;
- import mx.containers.Canvas;
- import mx.controls.Image;
- import mx.controls.Label;
- import mx.core.Container;
- import mx.core.ScrollPolicy;
- public var currentPhoto:Number = 0 ;//当前的图片
- public var currentPageNum:int = 0 ;//当前页码
- public var albumdata:XML ;//照片书所有数据
- public var cmb:String ;//当前模版名称
- public var sourceurl:XML ;//当前资源图片路径
- public var currentText:XML ;//当前的文字信息
- //public var currentTextArea:TextArea ;//当前所编辑的文本控件
- public var currentLabel:Label ;//======当前文本编辑控件
- public static var MAIN:photobook68 ;
- public var c:Container ;//加入透明背景
- public var currentBj:Image = new Image() ;//当前的背景
- private var _state:Number= 0 ;//=====图片导入状态,是否为更换版式导入,还是单击图片导入,还是上一页或下一页的导入
- public var pid:String ;//==========已保存产品的ID
- public var subject:Canvas ;//==============当前的主题
- public var xmlList:XMLList ;//=============== 模板对应的数据
- private var labelTip:String ="单击此处,输入文字";//========默认输入文字提示
- private var objImgs:Object = new Object () ;//=====image 对象列表
- public var _stylename:String ;// 每个主题下面有3种风格
- public var _productName:String; //=========保存作品名称
- public var productid : Number //===========产品ID
- //==========产品价格
- //[Bindable]
- public var price:Number ;
- public var pagePrice:Number ;
- public var typeFlag:int = 0 ;
- //=============用户标识
- public var userID:Number ;
- internal function initUI():void{
- MAIN = this ;
- //=============初始化外部参数
- this.initParams();
- //=============初始化封面 模板 风格定义的数据
- this.initXMLData() ;
- //==========请求获取相册信息
- this.sendAlbumInfo() ;
- //=============加载照片书数据
- this.initXML(pid);
- //=============监听模版
- this.initListener() ;
- }
- /**============请求获取相册信息================================*/
- private function sendAlbumInfo():void{
- var obj:Object = new Object() ;
- obj.random = Math.random() ;
- obj.handlertype = 1 ;
- obj.userID = this.userID ;
- this.photoselectID.albumNameListId.send(obj);
- }
- /**==============监听模版====================================*/
- private function initListener():void{
- this.currentBj.addEventListener(MouseEvent.CLICK,photoClickHandler);
- this.currentBj.addEventListener(MouseEvent.DOUBLE_CLICK,doubleClickPhotoHandler);
- this.currentBj.doubleClickEnabled = true ;
- }
- /**==============得到照片书每一页的数据==========================*/
- public function initXML(pid:String):void{
- if(pid==null||pid=="null"||pid==""){
- createDefaultXML() ;
- }else{
- var params:Object = new Object() ;
- params.handlertype = 7 ;
- params.productrecordid = pid ;
- productInfoId.send(params);
- }
- }
- /**加载当前页所需要的数据
- * true :更换版式加载照片时要,要重新计算
- * false: 从xml中获取数据 。
- */
- public function loaderCurrentPageInfo(b:Boolean):void{
- this.currentPhoto = 0 ;
- cmb = this.albumdata.item.bs[this.currentPageNum];//获取当前的版式
- sourceurl = this.albumdata.item.photo[this.currentPageNum]; //当前页所有图片xml
- this.currentText = this.albumdata.item.txt[this.currentPageNum]; //当前页所有文本信息
- //tip_txt.text = sourceurl ;
- this.console.removeAllChildren();
- var a1:Array = cmb.split("/");
- var subject:String = a1[a1.length-3];//=====主题
- //var mb:String = a1[a1.length-2] ; //=====模版或者封面
- var picname:String = a1[a1.length-1];//=====图片名称
- //==========得到当前的版式的数据
- xmlList = this.getXMLData(subject,picname,this.currentPageNum) ;
- this.subject = new Canvas() ;
- this.subject.verticalScrollPolicy = ScrollPolicy.OFF ;
- this.subject.horizontalScrollPolicy = ScrollPolicy.OFF ;
- //this.subject.width = 564 ;
- //this.subject.height = 209 ;
- this.console.addChild(this.subject) ;
- initMoBan(); //===============初始化模版
- for(var i:int=0;i<xmlList.pic.length();i++){
- var c1:Canvas = new Canvas() ;
- c1.verticalScrollPolicy = ScrollPolicy.OFF ;
- c1.horizontalScrollPolicy = ScrollPolicy.OFF ;
- c1.x = xmlList.pic[i].@x ;
- c1.y = xmlList.pic[i].@y ;
- c1.width= xmlList.pic[i].@width ;
- c1.height = xmlList.pic[i].@height ;
- this.subject.addChild(c1);
- var _img1:Image = new Image() ;
- _img1.id = "img"+i;
- _img1.name = "img"+i;
- _img1.width = c1.width ;
- _img1.height = c1.height ;
- _img1.scaleContent = true ;
- this.objImgs["img"+i] = _img1 ;//=======放入数组当中
- if(b==true){
- this.reLoaderPhotoByChangeBs(_img1,i);
- }else{
- this.loadPhoto(_img1,i);
- }
- c1.addChild(_img1) ;
- }
- //========加载文字信息
- initTextInfo();
- //========突出当前页数字体
- this.pagefalgcomId.changeFontStyle();
- //========切换标签显示
- this.changembID.changeTab(this.currentPageNum);
- //========更新滚动条位置
- this.pagefalgcomId.changeScrollPostition();
- }
- /**===============初始化模板===========================*/
- private function initMoBan():void{
- //this.currentBj.source = this.albumdata.item.bs[this.currentPageNum] ;
- //this.console.addChild(this.currentBj);
- this.currentBj.source =cmb ;
- this.console.addChild(this.currentBj);
- }
- private function photoClickHandler(e:MouseEvent):void{
- var img :Image = null ;
- for(var i:int=0;i<this.xmlList.pic.length();i++){
- img = this.objImgs["img"+i];
- if(img.source==""){
- continue ;
- }
- var b:Boolean =img.hitTestPoint(mouseX,mouseY);
- if(b==true){
- //this.photoClickHandler(img) ;
- this.alphaHandler() ;
- //var n:Number = Number(img.id.charAt(3)) ;
- this.currentPhoto = i ;//当前照片的号码
- img.alpha = 0.5 ;
- break ;
- }
- }
- }
- /**==============更改背景=============================*/
- public function changeFM(fm:String):void{
- //=======修改对于xml数据
- this.currentPageNum = 0 ;
- this.albumdata.item.bs[this.currentPageNum] = fm ;
- this.currentPhoto = 0 ;
- this.loaderCurrentPageInfo(true);
- }
- /**==============更改版式=============================*/
- public function changeCurrentBs(bs:String):void{
- //=======修改对于xml数据
- this.albumdata.item.bs[this.currentPageNum] = bs ;
- this.currentPhoto = 0 ;
- this.loaderCurrentPageInfo(true);
- }
- /**==============加载已保存产品信息=============================*/
- public function loadProductInfo():void{
- albumdata = new XML(productInfoId.lastResult);
- //tip_txt.text = albumdata.productname ;
- //=====得到产品名称
- //this._productName = albumdata.productname ;
- //=====导入当前页的数据
- this.loaderCurrentPageInfo(false);
- //=====初始化选择页列表
- photobook68.MAIN.pagefalgcomId.initUI() ;
- this.initPrice() ;
- }
- /******========点击右侧照片处理===============================*/
- public function choosePhotoHandler(e:MouseEvent):void{
- var i:Image = Image(e.currentTarget) ;
- var m :String = i.source.toString() ;
- m = m.replace("_2","_1") ;
- //======当前模板的图片个数
- var t:Number = xmlList.pic.length();
- if(this.currentPhoto>t-1){
- this.currentPhoto = 0 ;
- }
- //========恢复透明度
- this.alphaHandler();
- var img:Image = Image(this.objImgs["img"+this.currentPhoto]);
- changePhoto(img,m,this.currentPhoto) ;
- }
- /**
- * 导入图片,对图片进行处理
- * @param img:版式上对应的图片
- * @photourl:图片地址
- * tx:Number,ty:Number,tw:Number,th:Number
- */
- public function loadPhoto(img:Image,num:Number):void{
- var w1:Number, h1:Number, x1:Number,y1:Number,purl:String ;
- x1 = this.sourceurl.img[num].@x ;
- y1 = this.sourceurl.img[num].@y ;
- w1 = this.sourceurl.img[num].@width ;
- h1 = this.sourceurl.img[num].@height ;
- purl = this.sourceurl.img[num].@url ;
- if(purl==null||purl==""){
- return ;
- }
- //=======自动填充时,重新导入照片
- if(x1==-1){
- this.reLoaderPhotoByChangeBs(img,num) ;
- return ;
- }
- var _loader:Loader = new Loader();
- _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
- var _bitmap:Bitmap = new Bitmap() ;
- var l:Loader = e.target.loader as Loader;
- var _bitmapdata:BitmapData = new BitmapData (l.width,l.height) ;
- _bitmapdata.draw(l);
- var temp:BitmapData = new BitmapData(w1,h1);
- //坐标转化,把坐标移到裁剪区域的位置,宽度和高度在cutbitmapdata里指定。
- var matrix:Matrix = new Matrix(1, 0, 0, 1, -x1, -y1);
- temp.draw(_bitmapdata, matrix);
- //_bitmap.
- _bitmap.bitmapData = temp ;
- img.source = _bitmap ;
- img.scaleContent = true ;
- photobook68.MAIN.currentPhoto++ ;
- });
- _loader.load(new URLRequest(purl));
- }
- /**========改变版式时候,重新计算照片位置=========*/
- private function reLoaderPhotoByChangeBs(_img:Image,num:Number):void{
- var photourl:String = sourceurl.img[num].@url ;
- if(photourl==null||photourl==""){
- return ;
- }
- var w1:Number, h1:Number, x1:Number,y1:Number ;
- var p:photobook68 = this ;
- var _loader:Loader = new Loader();
- _loader.load(new URLRequest(photourl));
- _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
- var _bitmap:Bitmap = new Bitmap() ;
flex 开发的照片书二
最新推荐文章于 2025-08-08 23:05:48 发布