Flex打印问题
- 格式:doc
- 大小:110.00 KB
- 文档页数:10
30.4使用Flex Network的外部输入/输出30.4.1简介通过将FLEX NETWORK模块连接到GP,您不仅可以使用人机界面来远程控制外部输入/输出,还可以控制输入和输出外的其他事项。
您还可以添加多个FLEXNETWORK模块来增加输入/输出点的数量。
该模块有两条连接线,而向这两条连接线输出的是相同的通讯数据。
只要使用其中任意一条线,则线1和线2都可用。
使用一条线时,可以连接的最大站数是31。
使用两条线时,可以连接的最大站数是63。
一条线支持31站,另一条线支持32站。
有关配置的详细信息,请参阅“FLEX NETWORK用户手册”1.1节系统配置。
•FLEX NETWORK和GP的连接需要专用电缆。
FLEX NETWORK模块:型号和站数下面将介绍FLEX NETWORK模块的型号、点数和站数。
例如,如果您使用的是具有32个离散输入和32个离散输出的总计64点的输入/输出模块,且将S编号定义为1,那么该输入/输出模块将使用S编号1至4。
类型类型点数占用站数I/O FN-X16TS16点输入1站FN-X32TS32点输入2站FN-Y08RL8点输出1站FN-Y16SK16点输出1站FN-Y16SC16点输出1站FN-XY08TS8点输入1站8点输出FN-XY16SK16点输入1站16点输出FN-XY16SC16点输入1站16点输出FN-XY32SK32点输入4站32点输出模拟FN-AD02AH2chA/D1站FN-AD04AH4chA/D4站FN-DA02AH2chD/A1站FN-DA04AH4chD/A4站特殊定位FN-PC10SK-4站高速计数器FN-HC10SK41-8站30.4.2设置步骤下面是如何在FLEX NETWORK 模块中使用数字输入/输出(DIO)的示例。
1选择型号为AGP-XXXXX-FN1M 的人机界面。
FLEX NETWORK 驱动程序将自动安装。
2在[系统设置]窗口中,选择[输入/输出驱动程序]来显示如下画面。
1、flex包含一个基于组件的开发模型,你只需要按需求继承现有的组件并扩展相关的方法就可开发你的应用。
2、可视化组件包括以下主要特性:尺寸、事件、样式、效果、皮肤。
3、flex定义了两套组件。
一套为Spark,放在spark.*包下。
一套为MX,放在mx.*包下。
Spark是在flex4中新添加的,mx为旧版本中定义的。
两套组件的主要不同点在于样式及皮肤的使用。
另外对于容器组件,布局的方式也改变了。
4、有些组件在两套UI中都存在,例如按钮,在这种情况下adobe建议你使用Spark 中的组件。
有些组件是某套UI特有的。
例如Spark中的3d效果。
mx组件中的数据可视化组件,例如DataGrid、AdvancedDataGrid。
所以你的应用会包含两套UI 中的组件。
5、可视化组件的继承层次结构:Object-EventDispatcher-DisplayObject-InteractiveObject-DisplayObjectContainer-Sprite-FlexSprite-UIComponent。
flex中所有的可视化对像都继承自UIComponent。
6、UIComponent中需要注意以下属性。
doubleClickEnabled:flex默认是不支持双击的,如果要开启双击,请把该属性设为true;height:在mxml中你可以设置值为数字,这时默认单位为pix。
你也可以设置为70%这种比例。
在as中,如果要设置百分比,你需要用percentHeight这个属性。
x,y:这组属性只在layout为绝对布局时才有效。
7、每一个flex组件都有对应的mxml接口和as接口。
两者之间是相等的。
8、每个一可视化组件都包含以下三个生命周期事件:preInitialize:组件刚被创建,还没有添加子节点,且不可见。
initialize:把子节点初始化好,并尺寸也设置好,但仍然处于不可见状态。
Flex常见问题及解决办法杨勇耀,陈兵北京北科博研科技有限公司摘要:本文主要对Flex运用过程中几个常见问题的现象和解决办法进行说明,常见问题包括1: Flex与ExtJs交互,切换tabpanel时导致事件和方法丢失2: Flex嵌入切换到HTML中焦点不能输入中文3: Flex数据异步加载和FLEX本身加载顺序控制4: Flex嵌入到HTML中遮盖DIV的问题5:Flex与java交互中文乱码关键词:Flex,ExtJs,事件丢失,中文输入,遮盖,异步加载,中文乱码1.Flex与ExtJs交互,切换tabpanel时事件和方法丢失我的flex封装文件是嵌入在extjs的tabpanel的一个tab中,当第一次打开该页面的时候,可以调用到ExternalInterface注册的方法,如果我直接从flex触发其任何事件,再切换到其他的tab然后再回到该页面,那么注册的方法就为null了。
也就是说操作完flex的东西,再切换tab后,flex中注册过的方法和监听事件都丢失了。
另外如果在多个页签中有多个tabpanel时,各个页签中的FLEX对象会出现互相卡死现象。
解决方法1(不推荐):重新注册flex中的方法和监听事件解决方法2(推荐):如果你点击flex里的内容怎么切换都没问题,只要操作过flex中的内容,在做tab切换,就会发现注册过的方法和监听事件都丢失了。
在切换tab前,可以把焦点从flex中移走,比如contentTabPanel.on("beforetabchange",function(tabPanel,tab){document.body.focus();})2.Flex嵌入切换到HTML中焦点不能输入中文当焦点置于Flash后再切换到HTML元素中如HTML的INPUT输入框中,不管怎么切换我们的输入法,中文就是出不来。
其实这算是Flash的一个BUG。
通过翻阅了FlexAPI相关函数时,发现flash.system.Capabilities参数组。
Flex 4打印功能Flex4的打印功能和Silverlight 4打印功能步骤很相似,但是实现不同,Flex 4的打印功能不是事件驱动,基本步骤如下:步骤1:建立FlexPrintJob对象,可以把该对象看作Silverlight 的PrintDocument;步骤2:使用一个布尔变量控制要打印的图片格式,例如是打印矢量图还是打印位图;步骤3:调用FlexPrintJob中的Start()方法,这时会弹出提示窗口,询问是否开始打印,选择确定,将开始打印;步骤4:建立一个打印对象,并添加这个打印对象到现实列表中;步骤5:使用FlexPrintJob中的addObject()添加对象到打印页面中;步骤6:调用FlexPrintJob中的send()方法,对添加的打印页面进行打印;步骤7:打印后,删除已经打印的视图对象;下面提供按钮事件代码,点击按钮后,会打印出“Hello World”。
protected function button1_clickHandler(event:MouseEvent):void {var job : FlexPrintJob = new FlexPrintJob(); job.printAsBitmap = false;if(job.start()) {var group : HGroup = new HGroup();group.height = job.pageHeight;group.width = job.pageWidth;var text : SimpleText = new SimpleText(); text.text = "Hello ";text.setStyle("fontFamily", "Arial");text.setStyle("fontSize",12);group.addElement(text);text = new SimpleText();text.setStyle("fontFamily", "Arial");text.setStyle("fontSize",12);text.text = "World";group.addElement(text);addElement(group);job.addObject(group, FlexPrintJobScaleType.NONE);job.send();removeElement(group);}Flex中的打印技术时间:2009-06-29 20:40来源:未知作者:admin 点击:次总结了一下打印技术。
Flex中常见问题总结:问题1:方法:1、下载flashplayer11.7ax.exe补丁,更新Flash Player仍没有解决;2、删除flex安装目录下plyer文件夹中的11.1和11.2,错误仍存在;解决方法:html文件中存在语句问题,删掉相关语句后即可。
同时注意不要在html文件中设置player版本,或者是把版本改为0.0.0。
问题2:原因:sdk的版本为4.6.1而不是4.6.0,所以造成找不到相应的product。
解决方式:将使用的sdk换成4.5.0后,将所有的工程重新构建。
问题3:1、在编译器设置中修改sdk的版本。
目前为4.6,编译参数为-local zh-CN2、Lib中引用local文件夹中的zh-CN下面的*.swc文件。
3、解决方式:将使用的sdk换成4.5.0后,将所有的工程重新构建。
问题4:1、解决方式:将使用的sdk换成4.5.0后,将所有的工程重新构建。
问题5:到http://192.168.20.70:8081/WebGis/Handlers/LogInHandler.ashx?_method=login&username=Admin&psw=123456 的连接已停止 - 不允许从http://localhost:3000/CtnGxMapFrm/flex_bin/ctnjkframe.swf 进行连接错误: 拒绝请求位于http://192.168.20.70:8081/WebGis/Handlers/LogInHandler.ashx?_method=l ogin&username=Admin&psw=123456 的资源(请求者从http://localhost:3000/CtnGxMapFrm/flex_bin/ctnjkframe.swf/[[DYNAMIC]] /6 发出请求),原因是缺乏策略文件权限。
(本机代码中没有加载策略文件)1、在WebGis站点下放crossdomain文件之后,Flex启动的话还是安全沙箱的错,html启动不报错了。
java基础之Flex弹性布局、JSP错误处理以及Log4J ⼀、Flex弹性布局1.产⽣的⽐较晚,⽬前在移动⽹页开发中可以使⽤,⽽且逐渐成为主流。
在桌⾯⽹页开发中使⽤的⽐较少(主要是桌⾯浏览器的兼容性问题更加严重)2.开启⽅法:在容器标签上加上 display:flex;将对容器内部的标签起到布局作⽤3.布局效果A、⽀持对齐:可以实现上、下、左、右4个⽅向停靠排列可以实现上下居中,左右居中B、排列⽅向⽀持:可以实现内部标签⽔平排列、垂直排列、多⾏排列C、空间分配⽀持:空间均分(考虑两头空间、不考虑两头空间)空间可以固定或弹性伸缩(可以指定伸缩⽐例)4.布局⽅向:默认是⽔平⽅向为主轴,垂直⽅向叫做交叉轴。
元素沿着主轴⽅向排列主轴可以通过flex-direction修改如下:将主轴改为列主轴居中交叉轴居中空间均分(两头有空⽩)(两头⽆空⽩)空间分配⽐例⼆、Servlet、JSP和Tomcat错误处理页⾯找不到404,有明确的Http状态码的错误1. 可以在web.xml中配置<error-page><error-code>404</error-code><location>跳转到的错误⽹页地址(/WEB-INF/404.jsp)</location></error-page>2.<error-page><exception-type>ng.Exception</exception-type><location>跳转到的错误⽹页地址(/WEB-INF/exception.jsp)</location></error-page>通过<location>节点可配置【转发】到哪个页⾯错误页⾯可以在<%page 指令中添加 isErrorPage = “true” 这个属性,添加之后可以在JSP中访问Exception对象,Exception代表当前抛出的异常(如果异常的类型是ServletException或者它的⼦类)那么Exception对象将指向ServletException内部包装的那个异常对象,⽽不是指向ServletException本⾝三、关于代码中的catch:1.之前我们catch到exception之后只调⽤了exception.printStackStrace()将之打印到控制台输出,页⾯并没有报错(但页⾯显⽰不正常,如没有数据)2.添加错误页之后,catch到的exception就不能只打印了之,不能让exception被忽略!⽽是应该在打印之后将之抛出,甚⾄不需要打印,⽽是抛出(抛出⽐打印更重要)3.抛出异常时会发现不是所有的异常类型都能抛出去(因为有⼀些⽅法的签名是固定的,⽽且是由其他⼈提供的,没法改,如HttpServlet中的doXXX⽅法)只能选择抛出指定类型的异常,将真正的异常包在⾥⾯。
双面打印最终解决方案一、背景介绍在现代办公环境中,打印机是一项必不可少的设备。
为了节约纸张和保护环境,双面打印成为了一种常见的需求。
然而,由于打印机设置、文件格式和操作系统的差异,双面打印经常会遇到一些问题,如打印顺序错误、页面翻转问题等。
因此,我们需要一个最终解决方案来解决这些问题,确保双面打印的顺利进行。
二、问题分析1. 打印顺序错误:有时,双面打印后的页面顺序会与预期不符,导致文件无法正确阅读。
2. 页面翻转问题:在某些情况下,双面打印后的页面会出现上下颠倒或左右翻转的情况,给文件的阅读带来困扰。
3. 打印机设置问题:不同的打印机设置界面和选项可能会导致打印结果的差异,需要统一的设置方案。
三、解决方案为了解决上述问题,我们提出了以下最终解决方案:1. 打印顺序错误的解决方案:a. 在打印文件之前,确保文件的页面顺序正确,可以通过预览功能或打印设置中的页面排序选项进行确认。
b. 在打印设置中选择“双面打印”选项,并确保选择了正确的打印机。
c. 在打印设置中选择“从后往前打印”选项,这样可以确保双面打印后的页面顺序与预期一致。
2. 页面翻转问题的解决方案:a. 在打印设置中选择“双面打印”选项,并确保选择了正确的打印机。
b. 在打印设置中选择“翻转页面”选项,可以根据实际情况选择上下翻转或左右翻转。
c. 在打印设置中选择“从后往前打印”选项,这样可以确保双面打印后的页面顺序与预期一致。
3. 打印机设置统一的解决方案:a. 在打印设置中,选择“打印机属性”或“高级选项”等相关选项,进入打印机设置界面。
b. 在打印机设置界面中,找到“双面打印”选项,并选择适合的设置,如“自动双面打印”或“手动双面打印”。
c. 在打印机设置界面中,找到“页面翻转”选项,并选择适合的设置,如“上下翻转”或“左右翻转”。
四、实施步骤1. 检查打印机设置:a. 打开计算机的控制面板,找到“设备和打印机”选项。
b. 右键点击需要设置的打印机,选择“打印机属性”或“高级选项”。
Flex打印问题使用两个类解决打印问题:FlexPrintJob和PringDataGrid。
? FlexPrintJob。
这个类需要在实例化之后用作要打印对象的容器。
? PringDataGrid。
是DataGrid的一个子类,用来打印必须以网格或表格形式显示的数据,支持多页面打印。
简单的打印实例:< ?xml version="1.0" encoding="utf-8"?>< mx:Application xmlns:mx=/2006/mxml layout="absolute"><mx:Script><![CDATA[import mx.printing.FlexPrintJob;private function testPrint():void{var myPrintJob:FlexPrintJob = new FlexPrintJob();if (myPrintJob.start() != true){return;}//加入需要打印的组件myPrintJob.addObject(printContent);myPrintJob.send();}]]></mx:Script><mx:VBox id="printContent" backgroundColor="#FFFFFF"><mx:Label text="打印示例"></mx:Label></mx:VBox><mx:Button x="30" y="30" label="打印" click="testPrint()"/>< /mx:Application>见源代码:printDemo.mxml。
创建单独的Print容器:< ?xml version="1.0" encoding="utf-8"?>< mx:Application xmlns:mx=/2006/mxml layout="absolute" creationComplete="bookDataCall.send()"><mx:Script><![CDATA[import mx.printing.FlexPrintJob;import mx.rpc.events.ResultEvent;import mx.collections.ArrayCollection;[Bindable]public var bookData:ArrayCollection;//得到books.xml数据private function bookFunction(event:ResultEvent):void{bookData = event.result.books.stock;}//打印方法private function printJob():void{var myPrintJob:FlexPrintJob = new FlexPrintJob();if (myPrintJob.start() != true){return ;}//绑定数据源myPrintDataGrid.dataProvider = bookInfo.dataProvider;//加入需要打印的组件myPrintJob.addObject(printArea);myPrintJob.send();}]]></mx:Script><mx:HTTPService id="bookDataCall" url="assets/books.xml" result="bookFunction(event)" /><mx:Form id="myForm"><mx:DataGrid id="bookInfo" dataProvider="{bookData}"><mx:columns><mx:DataGridColumn dataField="name" headerText="书名" /><mx:DataGridColumn dataField="author" headerText="作者" /><mx:DataGridColumn dataField="category" headerText="目录" /></mx:columns></mx:DataGrid><mx:Button id="myButton" label="打印" /></mx:Form><mx:VBox id="printArea" height="300" width="500" backgroundColor="#FFFFFF" visible="false"><mx:PrintDataGrid id="myPrintDataGrid" height="100%" width="100%" fontSize="6" fontFamily="Arial" wordWrap="true"/></mx:VBox>< /mx:Application>见源代码:printDemo1.mxml,books.xml使用组件打印:1. 组件代码:< ?xml version="1.0" encoding="utf-8"?>< mx:VBox xmlns:mx="/2006/mxml" width="500" height="300" visible="false" backgroundColor="#FFFFFF">< mx:PrintDataGrid id="myPringDataGrid" height="100%" width="100%" fontSize="6" fontFamily="Arial" wordWrap="true"><mx:columns><mx:DataGridColumn dataField="name" headerText="书名" /><mx:DataGridColumn dataField="author" headerText="作者" /><mx:DataGridColumn dataField="category" headerText="目录" /></mx:columns></mx:PrintDataGrid>< /mx:VBox>2. 应用代码:< ?xml version="1.0" encoding="utf-8"?>< mx:Application xmlns:mx=/2006/mxml layout="absolute" creationComplete="bookDataCall.send()"><mx:Script><![CDATA[import mx.printing.FlexPrintJob;import mx.rpc.events.ResultEvent;import mx.collections.ArrayCollection;import components.PrintComp;[Bindable]public var bookData:ArrayCollection;//得到books.xml数据private function bookFunction(event:ResultEvent):void{bookData = event.result.books.stock;}//打印方法private function printJob():void{var myPrintJob:FlexPrintJob = new FlexPrintJob();if (myPrintJob.start() != true){return ;}//实例化组件var myPrintComp:PrintComp = new PrintComp();//动态增加组件this.addChild(myPrintComp);//绑定数据源myPrintComp.myPringDataGrid.dataProvider =bookInfo.data;//加入需要打印的组件myPrintJob.addObject(myPrintComp);myPrintJob.send();//移除组件this.removeChild(myPrintComp);}]]></mx:Script><mx:HTTPService id="bookDataCall" url="assets/books.xml" result="bookFunction(event)" /><mx:Form id="myForm"><mx:DataGrid id="bookInfo" dataProvider="{bookData}"><mx:columns><mx:DataGridColumn dataField="name" headerText="书名" /><mx:DataGridColumn dataField="author" headerText="作者" /> <mx:DataGridColumn dataField="category" headerText="目录" /> </mx:columns></mx:DataGrid><mx:Button id="myButton" label="打印" /></mx:Form><mx:VBox id="printArea" height="300" width="500" backgroundColor="#FFFFFF" visible="false"><mx:PrintDataGrid id="myPrintDataGrid" height="100%"width="100%" fontSize="6" fontFamily="Arial"wordWrap="true"/></mx:VBox>< /mx:Application>见源代码:printDemo2.mxml,books.xmlFlash/ActionScript/Flex]代码view sourceprint?001 <?xml version="1.0"?>002 <!-- printing\DGPrintCustomComp.mxml -->003 <mx:Application xmlns:mx="/2006/mxml" 004 height="450"005 width="550">006 <mx:states>007 <mx:State name="printView">008 <mx:RemoveChild target="{myForm}"/>009 <mx:AddChild position="lastChild">010 <mx:Panel width="388"height="303"layout="absolute">011 <mx:Image id="img"x="10"y="10"/>012 </mx:Panel>013 </mx:AddChild>014 <mx:AddChild position="lastChild">015 <mx:Buttonlabel="Back"click="currentState="""/> 016 </mx:AddChild>017 </mx:State>018 </mx:states>019020 <mx:Script>021 <![CDATA[022 importmx.printing.flexPrintJob;023 importmyComponent.MyPrintView;024 importmx.graphics.ImageSnapshot;025 importmx.core.UIComponent;026 privatefunctionprint(u:UIComponent):void{027 currentState="printView";028 varbmp:BitmapData = ImageSnapshot.captureBitmapData(u); 029 vari:Bitmap =newBitmap(bmp);030 img.source = i;031 img.scaleContent =true;032 }033034 publicfunctiondoPrint():void{035 // Create a flexPrintJob instance.036 varprintJob:flexPrintJob =newflexPrintJob();037038 // Start the print job.039 if(printJob.start()) {040 // Create a MyPrintView control as a child041 // of the current view.042 varformPrintView:MyPrintView =newMyPrintView(); 043 addChild(formPrintView);044 // Set the print control's data grid data provider to be 045 // the displayed data grid's data provider.046 formPrintView.myDataGrid.dataProvider =047 myDataGrid.dataProvider;048 // Add the SimplePrintview control to the print job. 049 // For comparison, try setting the050 // second parameter to "none".051 printJob.addObject(formPrintView);052053 // Send the job to the printer.054 printJob.send();055056 // Remove the print-specific control to free memory. 057 removeChild(formPrintView);058 }059 }060 ]]>061 </mx:Script>063 <!-- The form to display-->064 <mx:Form id="myForm">065 <mx:FormHeadinglabel="Contact Information"/> 066 <mx:FormItemlabel="Name: ">067 <mx:T extInput id="custName"068 width="200"069 text="Samuel Smith"070 fontWeight="bold"/>071 </mx:FormItem>072 <mx:FormItemlabel="Phone: ">073 <mx:T extInput id="custPhone"074 width="200"075 text="617-555-1212"076 fontWeight="bold"/>077 </mx:FormItem>078 <mx:FormItemlabel="Email: ">079 <mx:T extInput id="custEmail"080 width="200"081 text="sam@"082 fontWeight="bold"/>083 </mx:FormItem>085 <mx:FormHeadinglabel="Product Information"/>086 <mx:DataGrid id="myDataGrid"width="300">087 <mx:dataProvider>088 <mx:ObjectProduct="Flash"Code="1000"/>089 <mx:ObjectProduct="flex"Code="2000"/>090 <mx:ObjectProduct="ColdFusion"Code="3000"/>091 <mx:ObjectProduct="JRun"Code="4000"/>092 </mx:dataProvider>093 </mx:DataGrid>094 <mx:Buttonlabel="PrintView"click="print(myDataGrid)"/> 095 <mx:FormItemlabel="Label">096 </mx:FormItem>097 <mx:Button id="myButton"098 label="Print"099 click="doPrint();"/>100 </mx:Form>101 </mx:Application>102103 Component:104 MyPrintView. mxml(这是一个组件)105 <?xml version="1.0"?>106 <!-- printing\myComponents\MyPrintView.mxml -->107 <mx:VBox xmlns:mx="/2006/mxml" 108 backgroundColor="#FFFFFF"109 height="250"width="450"110 paddingTop="50"paddingLeft="50"paddingRight="50"> 111112 <!-- The controls to print, a PrintDataGrid control. --> 113 <mx:PrintDataGrid id="myDataGrid"width="100%">114 <mx:columns>115 <mx:DataGridColumn dataField="Product"/>116 <mx:DataGridColumn dataField="Code"/>117 </mx:columns>118 </mx:PrintDataGrid>119 </mx:VBox>。