`
hereson2
  • 浏览: 466262 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex 开发的照片书二

阅读更多
 
  1.             import code.*;
  2.             
  3.             import common.PhotoEdit;
  4.             import common.TextEdit;
  5.             
  6.             import data.*;
  7.             
  8.             import flash.display.*;
  9.             import flash.events.MouseEvent;
  10.             import flash.net.URLRequest;
  11.             
  12.             import mx.containers.Canvas;
  13.             import mx.controls.Image;
  14.             import mx.controls.Label;
  15.             import mx.core.Container;
  16.             import mx.core.ScrollPolicy;
  17.             public var currentPhoto:Number = 0  ;//当前的图片
  18.               
  19.             public var currentPageNum:int = 0 ;//当前页码
  20.              
  21.             public var albumdata:XML ;//照片书所有数据 
  22.             public var cmb:String ;//当前模版名称 
  23.                
  24.             public var sourceurl:XML ;//当前资源图片路径
  25.                
  26.             public var currentText:XML ;//当前的文字信息
  27.               
  28.             //public var currentTextArea:TextArea ;//当前所编辑的文本控件
  29.             public var currentLabel:Label ;//======当前文本编辑控件
  30.               
  31.             public static var MAIN:photobook68  ;
  32.             
  33.             public var c:Container ;//加入透明背景
  34.              
  35.              
  36.             public var currentBj:Image = new Image() ;//当前的背景
  37.             
  38.             private var _state:Number= 0 ;//=====图片导入状态,是否为更换版式导入,还是单击图片导入,还是上一页或下一页的导入
  39.             
  40.             public var pid:String ;//==========已保存产品的ID
  41.             public var subject:Canvas ;//==============当前的主题
  42.             public var xmlList:XMLList ;//===============  模板对应的数据
  43.             
  44.             private var labelTip:String ="单击此处,输入文字";//========默认输入文字提示
  45.             
  46.             private var objImgs:Object = new Object () ;//=====image 对象列表
  47.         
  48.             public var _stylename:String ;//            每个主题下面有3种风格
  49.                
  50.             public var _productName:String; //=========保存作品名称
  51.             
  52.             public var productid : Number //===========产品ID
  53.             //==========产品价格
  54.             //[Bindable]
  55.             public var price:Number ;
  56.             public var pagePrice:Number ; 
  57.             
  58.             public var typeFlag:int = 0 ;
  59.              
  60.             //=============用户标识
  61.             public var userID:Number ;
  62.             
  63.             internal function initUI():void{
  64.                 MAIN = this ;   
  65.                 //=============初始化外部参数
  66.                 this.initParams();
  67.                 //=============初始化封面 模板 风格定义的数据
  68.                 this.initXMLData() ;
  69.                  
  70.                 //==========请求获取相册信息
  71.                 this.sendAlbumInfo() ;
  72.                 //=============加载照片书数据
  73.                 this.initXML(pid); 
  74.                 //=============监听模版
  75.                 this.initListener() ;
  76.             }
  77.              
  78.             
  79.             /**============请求获取相册信息================================*/
  80.             private function sendAlbumInfo():void{
  81.                 
  82.                 var obj:Object = new Object() ;
  83.                 obj.random = Math.random() ;
  84.                 obj.handlertype = 1 ; 
  85.                 obj.userID = this.userID ;
  86.                 this.photoselectID.albumNameListId.send(obj);
  87.             }
  88.             
  89.             
  90.             /**==============监听模版====================================*/   
  91.             private function initListener():void{
  92.                 this.currentBj.addEventListener(MouseEvent.CLICK,photoClickHandler);
  93.                 this.currentBj.addEventListener(MouseEvent.DOUBLE_CLICK,doubleClickPhotoHandler);
  94.                 this.currentBj.doubleClickEnabled = true ;
  95.             }
  96.             
  97.             /**==============得到照片书每一页的数据==========================*/    
  98.             public function initXML(pid:String):void{
  99.                 
  100.                 if(pid==null||pid=="null"||pid==""){
  101.                     createDefaultXML() ;
  102.                 }else{
  103.                     var params:Object = new Object() ;
  104.                     params.handlertype = 7 ;
  105.                     params.productrecordid = pid ;
  106.                     productInfoId.send(params);
  107.                 }
  108.             }   
  109.             
  110.              /**加载当前页所需要的数据
  111.              * true :更换版式加载照片时要,要重新计算
  112.              * false: 从xml中获取数据 。
  113.              */
  114.             public function loaderCurrentPageInfo(b:Boolean):void{
  115.                    
  116.                 this.currentPhoto =  0 ;   
  117.                 cmb = this.albumdata.item.bs[this.currentPageNum];//获取当前的版式 
  118.                 sourceurl  = this.albumdata.item.photo[this.currentPageNum]; //当前页所有图片xml
  119.                 this.currentText = this.albumdata.item.txt[this.currentPageNum]; //当前页所有文本信息
  120.                  
  121.                 //tip_txt.text = sourceurl ;
  122.                 this.console.removeAllChildren();
  123.                  
  124.                 var a1:Array = cmb.split("/"); 
  125.             
  126.                    
  127.                 var subject:String = a1[a1.length-3];//=====主题
  128.                 //var mb:String =  a1[a1.length-2] ;   //=====模版或者封面
  129.                 var picname:String = a1[a1.length-1];//=====图片名称
  130.                 
  131.                   
  132.                 //==========得到当前的版式的数据
  133.                 xmlList = this.getXMLData(subject,picname,this.currentPageNum) ;
  134.                 
  135.                 this.subject = new Canvas() ;
  136.                 this.subject.verticalScrollPolicy = ScrollPolicy.OFF ;
  137.                 this.subject.horizontalScrollPolicy = ScrollPolicy.OFF ;
  138.                 
  139.                   
  140.                  
  141.                 //this.subject.width =  564  ;
  142.                 //this.subject.height = 209 ; 
  143.                 this.console.addChild(this.subject) ;
  144.                 
  145.                 initMoBan();   //===============初始化模版
  146.                  
  147.                  
  148.                 for(var i:int=0;i<xmlList.pic.length();i++){
  149.                     
  150.                     var c1:Canvas = new Canvas() ;
  151.                     c1.verticalScrollPolicy = ScrollPolicy.OFF ;
  152.                     c1.horizontalScrollPolicy = ScrollPolicy.OFF ;
  153.                     c1.x = xmlList.pic[i].@x ;
  154.                     c1.y = xmlList.pic[i].@y  ; 
  155.                     c1.width= xmlList.pic[i].@width ;
  156.                     c1.height = xmlList.pic[i].@height ;
  157.                       
  158.                     this.subject.addChild(c1);
  159.                     var _img1:Image = new Image() ;
  160.                     
  161.                     _img1.id = "img"+i;
  162.                     _img1.name = "img"+i;
  163.                     _img1.width = c1.width ;
  164.                     _img1.height = c1.height ; 
  165.                     _img1.scaleContent = true ;
  166.                     this.objImgs["img"+i] = _img1 ;//=======放入数组当中  
  167.                     if(b==true){
  168.                         this.reLoaderPhotoByChangeBs(_img1,i);
  169.                     }else{
  170.                         this.loadPhoto(_img1,i);
  171.                     }
  172.                     
  173.                     c1.addChild(_img1) ;                    
  174.                 }   
  175.                 
  176.                 //========加载文字信息
  177.                 initTextInfo();
  178.                 
  179.                 //========突出当前页数字体
  180.                 this.pagefalgcomId.changeFontStyle();
  181.                  
  182.                 //========切换标签显示
  183.                 this.changembID.changeTab(this.currentPageNum);
  184.                  
  185.                 //========更新滚动条位置
  186.                 this.pagefalgcomId.changeScrollPostition();
  187.             }   
  188.             
  189.             /**===============初始化模板===========================*/
  190.             private function initMoBan():void{
  191.                 //this.currentBj.source = this.albumdata.item.bs[this.currentPageNum] ; 
  192.                 //this.console.addChild(this.currentBj);
  193.                 this.currentBj.source =cmb ;
  194.                 
  195.                 this.console.addChild(this.currentBj); 
  196.                 
  197.             }
  198.             
  199.             private function photoClickHandler(e:MouseEvent):void{
  200.                 var img :Image = null ;
  201.                 for(var i:int=0;i<this.xmlList.pic.length();i++){
  202.                     img = this.objImgs["img"+i];
  203.                     if(img.source==""){
  204.                         continue ;
  205.                     }
  206.                     var b:Boolean =img.hitTestPoint(mouseX,mouseY);
  207.                     if(b==true){
  208.                         //this.photoClickHandler(img) ;
  209.                          
  210.                         this.alphaHandler() ;
  211.                         //var n:Number = Number(img.id.charAt(3)) ;
  212.                                 
  213.                         this.currentPhoto = i ;//当前照片的号码
  214.                         img.alpha = 0.5 ;
  215.                         break ;
  216.                     }
  217.                 }    
  218.                 
  219.             }
  220.               
  221.              /**==============更改背景=============================*/ 
  222.             public function changeFM(fm:String):void
  223.                 //=======修改对于xml数据
  224.                 this.currentPageNum = 0 ;
  225.                 this.albumdata.item.bs[this.currentPageNum] = fm ;
  226.                 this.currentPhoto = 0 ;  
  227.                   
  228.                 this.loaderCurrentPageInfo(true);
  229.                 
  230.             }
  231.              
  232.             /**==============更改版式=============================*/    
  233.             public function changeCurrentBs(bs:String):void{
  234.                  
  235.                 //=======修改对于xml数据
  236.                 this.albumdata.item.bs[this.currentPageNum] = bs ;
  237.                 this.currentPhoto = 0 ;  
  238.                 
  239.                 this.loaderCurrentPageInfo(true);
  240.             }
  241.             
  242.             
  243.             
  244.                         
  245.             /**==============加载已保存产品信息=============================*/    
  246.             public function loadProductInfo():void{
  247.                 albumdata = new XML(productInfoId.lastResult);
  248.                   
  249.                 //tip_txt.text = albumdata.productname ; 
  250.                 //=====得到产品名称 
  251.                 //this._productName = albumdata.productname ;
  252.                 
  253.                 //=====导入当前页的数据
  254.                 this.loaderCurrentPageInfo(false); 
  255.                 //=====初始化选择页列表
  256.                 photobook68.MAIN.pagefalgcomId.initUI() ;
  257.                 this.initPrice() ;
  258.             }       
  259.              
  260.             
  261.             /******========点击右侧照片处理===============================*/   
  262.             public function choosePhotoHandler(e:MouseEvent):void{
  263.                 var i:Image = Image(e.currentTarget) ;
  264.                 var m :String = i.source.toString() ;   
  265.                 m = m.replace("_2","_1") ;     
  266.                   
  267.                 //======当前模板的图片个数  
  268.                 var t:Number = xmlList.pic.length();
  269.                 
  270.                         
  271.                 if(this.currentPhoto>t-1){
  272.                     this.currentPhoto = 0 ;
  273.                 }    
  274.                  
  275.                 //========恢复透明度
  276.                 this.alphaHandler();
  277.                 
  278.                 var img:Image = Image(this.objImgs["img"+this.currentPhoto]);
  279.                 changePhoto(img,m,this.currentPhoto) ; 
  280.             } 
  281.              
  282.             /**
  283.              * 导入图片,对图片进行处理
  284.              * @param img:版式上对应的图片 
  285.              * @photourl:图片地址
  286.              * tx:Number,ty:Number,tw:Number,th:Number
  287.              */   
  288.             public function loadPhoto(img:Image,num:Number):void{
  289.                 var w1:Number, h1:Number, x1:Number,y1:Number,purl:String ; 
  290.                 x1 = this.sourceurl.img[num].@x ;
  291.                 y1 = this.sourceurl.img[num].@y ;
  292.                 w1 = this.sourceurl.img[num].@width ;
  293.                 h1 = this.sourceurl.img[num].@height ;
  294.                 purl = this.sourceurl.img[num].@url ; 
  295.                 
  296.                 if(purl==null||purl==""){
  297.                     return ;
  298.                 } 
  299.                 
  300.                 //=======自动填充时,重新导入照片
  301.                 if(x1==-1){
  302.                     this.reLoaderPhotoByChangeBs(img,num) ;
  303.                     return ;
  304.                 } 
  305.                 var _loader:Loader = new Loader();   
  306.                  
  307.                 _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
  308.                     var _bitmap:Bitmap = new Bitmap() ;
  309.                     var l:Loader = e.target.loader as Loader;  
  310.          
  311.                     var _bitmapdata:BitmapData = new  BitmapData (l.width,l.height) ;
  312.                     _bitmapdata.draw(l); 
  313.                     var temp:BitmapData  = new BitmapData(w1,h1);
  314.                     //坐标转化,把坐标移到裁剪区域的位置,宽度和高度在cutbitmapdata里指定。  
  315.                     var matrix:Matrix = new Matrix(1, 0, 0, 1, -x1, -y1);   
  316.                     temp.draw(_bitmapdata, matrix);    
  317.                     //_bitmap.   
  318.                     _bitmap.bitmapData = temp ;    
  319.                     img.source = _bitmap ; 
  320.                     img.scaleContent  = true ;
  321.                     photobook68.MAIN.currentPhoto++ ;
  322.                     }); 
  323.                 _loader.load(new URLRequest(purl)); 
  324.             } 
  325.             /**========改变版式时候,重新计算照片位置=========*/
  326.             private function reLoaderPhotoByChangeBs(_img:Image,num:Number):void{
  327.                var photourl:String = sourceurl.img[num].@url ;
  328.                 if(photourl==null||photourl==""){ 
  329.                     return ;
  330.                 } 
  331.                 var w1:Number, h1:Number, x1:Number,y1:Number ;  
  332.                 var p:photobook68 = this ;
  333.                 var _loader:Loader = new Loader();    
  334.                 _loader.load(new URLRequest(photourl));
  335.                  
  336.                 _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event):void{
  337.                     var _bitmap:Bitmap = new Bitmap() ;
  338.     
分享到:
评论

相关推荐

    照片书V2Book

    照片书v2book是一款高智能的自动相册编辑软件. 各位朋友可用本软件设计制作个性照片书,台历,挂历,请柬,书签。网站上有上百套个性化的主题模板供您选择。本照片书(相册)软件的特点是设计简易方便,实用,效率高...

    一刻网照片书制作软件.rar

    二是自动上传功能好用、快捷,节省你的时间;三是编辑功能强大。字体多、输入说明文字很方便。四是素材多、更新快。是你编辑、保存照片的很好工具。能将经过编辑的照片书印刷出来方便随时翻阅欣赏则更好。谢谢一刻网...

    照片书定制ERP

    点三照片书定制ERP是一款全面针对定制行业的ERP管理系统,集订单管理、定制管理、生产管理、出入库管理、售后管理、客户管理、报表分析、财务管理8大核心功能于一体,助您提升客户满意度。 软件功能:1. 一键上传...

    945diy照片书制作软件,个性台历制作软件

    在现代社会,个性化产品设计日益受到人们的青睐,尤其是在记录生活点滴的照片书、台历、挂历以及个性相册等领域。945diy照片书制作软件应运而生,以独特的创新理念和丰富的功能,为用户提供了高效便捷的个性化设计...

    个性相册(照片书)制作流程.pptx

    二、产品选择 在软件安装完成后,用户需要选择要制作的产品。在涂呀网DIY软件中,用户可以选择多种产品类别,包括照片书、相册、照片框等。用户可以双击图片选择产品类型,然后选择具体的产品。 三、照片编辑 在...

    TOCKUS照片书制作.exe

    TOCKUS照片书制作软件,是一款专业的免费个性图书编辑制作软件。2010年上海世博会唯一入驻世博园区个性印品制作品牌,你可以使用自己喜欢的照片或者图片定制个人专属的相册、纪念册、个性杂志、个性日历及卡片等.......

    纪念册、照片书、台历、个性化印刷定制商城源码3.1

    随着人们对个性生活追求的提高,个性化印刷产品越来越多,纪念册、照片书、相册、台历、挂历、扑克、明信片、LOMO卡、名片、T恤、杯子、海报等等均可实现在线定制,为了推动个性化定制市场的快速发展,我们开发了Q...

    照片书编辑平台

    实现了照片书中图片的平移旋转缩放,并且可以翻页,平移旋转缩放使用canvas实现

    专业照片书编辑软件V1.0.0.0免费安装版

    专业照片书编辑软件是一款可供顾客DIY相册、日历、贺卡、日记本、便签本等产品的相册制作软件。顾客可以按自己的喜好,随心所欲地套用自己喜欢的数码相片制作充满个人风格的产品,编辑属于自己风格的画册、台历、...

    免费照片制作软件|v2book精品照片书 v1.6.zip

    v2book精品照片书是一款能够以简单智能的方式制作你心仪的照片书的软件,专业级的效果,让你的作品呼之欲出。可以将大堆的照片,快速制作各种类别的照片书,旅游、婚纱、写真、儿童、家庭、风景、动物等等,各种模版...

    我印123照片书制作软件教程

    今天,我们要介绍的是一款名为“我印123照片书制作软件”的教程,它旨在帮助用户通过个性化的设计,将个人的数码照片转化为高质量、专业级别的个性化杂志或照片书。 “我印123照片书”制作软件是一款面向消费者的...

    晨光照片书台历制作软件V4.0.3.2

    晨光相册(台历挂历等)制作软件共用版是专为用户而研发,是一套简单易用但又功能强大的排版制作软件,人性化的设计界面,没有太多装饰元素,注重实用功能,功能强大、操作轻松便捷、几分钟即可上手,无师自通,是专业...

    全球印|照片书制作软件 v1.2.rar

    让您在2分钟搞定一款精美的照片书。 5,多种生产文件输出格式(PDF-单页或多页,JPEG)。  6,支持多国语言。  7,客户端支持断点续传功能,防止网络不稳定而造成反复上传而耽误客户的宝贵时间,尤其是在照片冲印...

    小清新摄影照片书画册PSD模板.txt

    小清新摄影照片书画册PSD模板

    照片书DIY软件 个性台历DIY软件 仿网易印象派DIY软件

    2. **模板丰富**:软件通常会提供多种风格和主题的模板,如简约、浪漫、家庭、旅行等,方便用户快速创建作品。 3. **编辑工具**:内置的编辑工具可能包括裁剪、旋转、滤镜、文字添加等功能,帮助用户优化照片效果并...

    行业文档-设计装置-基于移动智能终端的照片书制作方法.zip

    2. **照片书设计软件**:介绍适用于移动设备的照片书制作应用,比如Shutterfly、Snapfish、Canva等,包括它们的功能特性、界面友好度和用户评价。 3. **图片编辑技巧**:分享如何在移动设备上进行基本和高级的图片...

    一刻网照片书相册制作软件 v2.1.50 免安装版.rar

    2、实现在线和离线同步功能,快速导入、自动填图,较同类软件提升3倍制作速度。 3、三百套主题模板(儿童、毕业、校园、自拍、旅游),十余种不同制作尺寸(6X4—9X11英寸)! 4、轻松添加文字,多套挂件装饰。 5...

    PhotoBook:在线照片书个性化定制平台

    2. **前端框架**:为了构建高效且响应式的用户界面,开发团队可能使用了React、Vue.js或Angular等流行的JavaScript框架。这些框架简化了UI组件的创建和管理,提高了代码的可维护性。 3. **AJAX技术**:在用户上传...

    我印123照片书免费制作软件

    二、我印123基本功能: 图片编辑、图片装饰、图文混排、文字处理、各种几何图形及修饰、艺术字、表格、设置背景(图片、颜色、渐变色)、支持层、网格、参考线、支持元素复制粘贴、支持排版样式及模板的应用 ...

    图片处理教程(照片书制作软件教材).pdf

    图片处理教程(照片书制作软件教材).pdf

Global site tag (gtag.js) - Google Analytics