关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单、书签等相关问题
2015-03-02 更新文章,由于需求修改,更改了flexpaper插件,故增加第9、10、11小节,下载代码时请注意。
先废话几句。最近用到文档在线浏览功能,之前用的是print2flash(一个工具,文档直接转flash,自带翻页搜索等一系列功能),由于无法与js进行交互,所以改用flexpaper。
由于之前没接触过Flex,了解不多,所以文章难免有不合适的地方。希望各位给予指正。
首先感谢ajava.org的mark,一系列文章有很多的帮助,少走很多弯路。
开发工具:1.Adobe Flash Builder 4.5。下载地址:http://trials3.adobe.com/AdobeProducts/FLBR/4_5/win32/FlashBuilder_4_5_LS10.exe (目前已失效)
2.Flash Player Debugger 。 下载地址:http://download.macromedia.com/pub/flashplayer/updaters/11/flashplayer_11_ax_debug.exe (目前已失效)
3.Flex项目用的是Flex SDK4.5。
如果你没有Flex基础或不了解FlexPaper,强烈推荐你参考mark的文章。
具体修改FlexPaper的步骤就不多说了,随便百度一下,都是一大堆,具体的可以参阅mark的文章。PDF版下载
提供编译后的文件下载(不带间隔时间限制)。下载
修改后的FlexPaper项目文件下载(不带间隔时间限制)。csdn资源 (如果没有积分可以评论留下邮箱)
FlexPaper 2.1.2版本项目的源代码,有bug。csdn资源
FlexPaper 2.1.2Demo。下载地址:https://code.google.com/p/flexpaper/downloads/detail?name=FlexPaper_2.1.2.zip&can=2&q=
下面说说主要内容。
1.去关于、Logo和打印功能可以参照mark系列的文章或者文末的链接
2.我修改的打印按钮是可通过属性进行控制的,默认不显示
官网demo中要修改flexpaper.js中传递参数的地方,加入PrintEnabled和PrintVisible属性。
window[instance] = flashembed(id, {
src : _jsDirectory+"../FlexPaperViewer.swf",
version : [10, 0],
expressInstall : "js/expressinstall.swf",
wmode : _WMode
},{
ElementId : id,
SwfFile : _SWFFile,
PdfFile : _PDFFile,
IMGFiles : _IMGFiles,
JSONFile : _JSONFile,
useCustomJSONFormat : config.useCustomJSONFormat,
JSONPageDataFormat : config.JSONPageDataFormat,
JSONDataType : _JSONDataType,
Scale : (config.Scale!=null)?config.Scale:0.8,
ZoomTransition : (config.ZoomTransition!=null)?config.ZoomTransition:'easeOut',
ZoomTime : (config.ZoomTime!=null)?config.ZoomTime:0.5,
ZoomInterval : (config.ZoomInterval)?config.ZoomInterval:0.2,
FitPageOnLoad : (config.FitPageOnLoad!=null)?config.FitPageOnLoad:false,
FitWidthOnLoad : (config.FitWidthOnLoad!=null)?config.FitWidthOnLoad:false,
FullScreenAsMaxWindow : (config.FullScreenAsMaxWindow!=null)?config.FullScreenAsMaxWindow:false,
ProgressiveLoading : (config.ProgressiveLoading!=null)?config.ProgressiveLoading:false,
MinZoomSize : (config.MinZoomSize!=null)?config.MinZoomSize:0.2,
MaxZoomSize : (config.MaxZoomSize!=null)?config.MaxZoomSize:5,
SearchMatchAll : (config.SearchMatchAll!=null)?config.SearchMatchAll:false,
// PrintEnabled : (config.PrintEnabled!=null)?config.PrintEnabled:false,
// PrintVisible : (config.PrintVisible!=null)?config.PrintVisible:false,
SearchServiceUrl : config.SearchServiceUrl,
InitViewMode : config.InitViewMode,
BitmapBasedRendering : (config.BitmapBasedRendering!=null)?config.BitmapBasedRendering:false,
StartAtPage : config.StartAtPage,
PrintPaperAsBitmap : (config.PrintPaperAsBitmap!=null)?config.PrintPaperAsBitmap:false,
AutoAdjustPrintSize : (config.AutoAdjustPrintSize!=null)?config.AutoAdjustPrintSize:false,
EnableCornerDragging : ((config.EnableCornerDragging!=null)?config.EnableCornerDragging:true), // FlexPaper Zine parameter
BackgroundColor : config.BackgroundColor, // FlexPaper Zine parameter
PanelColor : config.PanelColor, // FlexPaper Zine parameter
BackgroundAlpha : config.BackgroundAlpha, // FlexPaper Zine parameter
UIConfig : config.UIConfig, // FlexPaper Zine parameter
ViewModeToolsVisible : ((config.ViewModeToolsVisible!=null)?config.ViewModeToolsVisible:true),
ZoomToolsVisible : ((config.ZoomToolsVisible!=null)?config.ZoomToolsVisible:true),
NavToolsVisible : ((config.NavToolsVisible!=null)?config.NavToolsVisible:true),
CursorToolsVisible : ((config.SearchToolsVisible!=null)?config.CursorToolsVisible:true),
SearchToolsVisible : ((config.SearchToolsVisible!=null)?config.SearchToolsVisible:true),
StickyTools : config.StickyTools,
Toolbar : config.Toolbar,
DocSizeQueryService : config.DocSizeQueryService,
RenderingOrder : config.RenderingOrder,
localeChain : (config.localeChain!=null)?config.localeChain:"en_US",
jsDirectory : _jsDirectory,
cssDirectory : _cssDirectory,
localeDirectory : _localeDirectory,
key : config.key
});
flexpaper.js
调用的地方:
$('#documentViewer').FlexPaperViewer(
{ config : {
DOC : escape(getDocumentUrl(startDocument)),
Scale : 2,
ZoomTransition : 'easeOut',
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
// PrintEnabled:false,
// PrintVisible:true,
InitViewMode : 'Portrait',
RenderingOrder : '<%=(configManager.getConfig("renderingorder.primary") + ',' + configManager.getConfig("renderingorder.secondary")) %>',
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
DocSizeQueryService : 'services/swfsize.ashx?doc=' + startDocument,
jsDirectory : 'js/',
JSONDataType : 'jsonp',
key : '<%=configManager.getConfig("licensekey") %>',
localeChain: 'zh_CN'
}}
);
simple_document.aspx
3.修改搜索bug
2.1.2版本的源码搜索中有Bug.第一次和第二次搜索的结果并存。修改后的版本修复整个文件搜索。
但是分页加载时搜索只能搜索当前页,官网Demo也是这样,Flex一窍不通,不知如何修改。囧。。。
修改View.as中searchText函数中for循环部分。改为:
if(clearmarklist){
if(_markList!=null){
for(var i:int=0;i<_markList.length;i++){
if(_markList[i]!=null && _markList[i].parent !=null){
// for(var ic:int=0;ic<_markList[i].numChildren;ic++){
// if(_markList[i].getChildAt(ic) is SearchShapeMarker){
// _markList[i].removeChildAt(ic);
// }
// }
_markList[i].parent.removeChild(_markList[i]);
}
}
}
_markList = new Array(numPages);
}
View.as
4.修改缩略图bug
当时遇到这问题的时候,百度了一下,说替换googlecode中的SDK3.5的swc就可以。但是失败。
自己尝试修改,发现把Flex项目属性>Flex编译器>Flex SDK版本>”使用兼容Flex 3兼容模式“,然后会报错,再将FlexPaperViewer_Base.mxml中第行的borderThickness="1"更改为如下四个属性即可:
paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"
5.添加按钮
修改FlexPaperViewer.mxml中<mx:HBox>节点代码。例如我加的一个书签按钮。
<mx:HBox styleName="toolbarBackground" width="100%" height="26" borderStyle="solid" verticalScrollPolicy="off" horizontalScrollPolicy="off" paddingTop="2" paddingLeft="2" horizontalGap="3">
<st:GradientImageButton id="PrintButton" icon="{MenuIcons.PRINT_ICON}" styleName="toolbttn" width="20" click="printPaper(event)" toolTip="@Resource(key='Print', bundle='FlexPaper')" visible="{PrintVisible}" includeInLayout="{!ReadOnly}" enabled="{PrintEnabled}" />
<mx:Image id="PrintBar" source="{MenuIcons.BAR}" width="3" height="21" includeInLayout="{!ReadOnly}" visible="{PrintVisible}" /> <st:GradientImageButton icon="@Embed('../src/img/bookmarks.png')" styleName="toolbttn" width="20" click="paper1.bookMarks();" toolTip="@Resource(key='BookMarks', bundle='FlexPaper')" tabIndex="1" visible="{ViewModeToolsVisible}" includeInLayout="{ViewModeToolsVisible}"/>
FlexPaperViewer.mxml
6.javascript与Flex交互
javascript交互分两种情况,1是Flex调js,2是js调用Flex。
可以参考:http://www.cnblogs.com/tiandi/archive/2012/06/03/2532977.html
http://wymsxty.blog.163.com/blog/static/77790858201083045541915/
http://blog.csdn.net/kunoy/article/details/7903258 这里js调用Flex的时候,javascript可能会报错。即window.FlexPaperViewer_Instance.getApi()中FlexPaperViewer_Instance会是undefined。我没找到什么原因。可参照上面两种,记得引入swfobject.js。
7.去右键菜单
注释掉FlexPaperViewer_Base.mxml中所有contextMenu.customItems.push()的代码。contextMenu.clipboardMenu三行属性都改为false.
contextMenu.clipboardMenu = false;//是否使用剪贴板菜单
contextMenu.clipboardItems.copy = false;
contextMenu.clipboardItems.selectAll = false;
右键菜单
8.书签功能
书签功能原理是点击按钮,获取当前页数,然后需要和Js进行交互,Js保存当前页数。
按钮添加在FlexPaperViewer.mxml中<mx:HBox> 节点中:
<st:GradientImageButton icon="@Embed('../src/img/bookmarks.png')" styleName="toolbttn" width="20" click="paper1.bookMarks();" toolTip="@Resource(key='BookMarks', bundle='FlexPaper')" tabIndex="1" visible="{ViewModeToolsVisible}" includeInLayout="{ViewModeToolsVisible}"/>
FlexPaperViewer.mxml
public function bookMarks():void{
var m:String = ExternalInterface.call("ShowCurrentPage",_currPage);
trace(m);
}
Viewer.as
通过js和按钮进行交互。
以下内容为更新内容,更新时间:2015-03-02,文中所指行数为修改代码的行数。
9.去掉右侧滚动条和工具栏文本框
由于需要增加现有需求,需要增加翻页时间间隔功能,所以添加9和10 两小节内容。
屏蔽右侧滚动条,修改内容Viewer.as文件中createDisplayContainer 方法(1508行,_paperContainer 变量实例化之后),添加:
//屏蔽右侧滚动条
_paperContainer.verticalScrollPolicy="off";
替换工具栏文本框防止翻页,修改FlexPaperViewer.mxml中<mx:HBox/> 节点中:
<!-- 屏蔽切换页-->
<!--<st:GradientTextInput id="txtPage" visible="{NavToolsVisible}" width="45" height="21"
enabled="{paper1.ViewMode == ViewModeEnum.PORTRAIT||paper1.ViewMode == ViewModeEnum.TWOPAGE||paper1.ViewMode == ViewModeEnum.SINGLEPAGE}"
fontSize="9" includeInLayout="{NavToolsVisible}"
keyDown="txtPageNumKeyDown(event)" tabIndex="12"
text="{formatPageNumber(paper1.currPage)}"
toolTip="@Resource(key='Current Page', bundle='FlexPaper')"/>-->
<!-- 修改切换页为文本-->
<st:GradientLabel id="txtPage" visible="{NavToolsVisible}" width="45" height="21" paddingTop="2"
enabled="{paper1.ViewMode == ViewModeEnum.PORTRAIT||paper1.ViewMode == ViewModeEnum.TWOPAGE||paper1.ViewMode == ViewModeEnum.SINGLEPAGE}"
fontSize="9" includeInLayout="{NavToolsVisible}" tabIndex="12"
text="{formatPageNumber(paper1.currPage)}"
toolTip="@Resource(key='Current Page', bundle='FlexPaper')"/>
添加节点
10.增加翻页间隔
增加翻页间隔,用到计时器,而且开放给外部js传参,固定间隔时间。
- 首先在默认包中FlexPaperViewer.mxml文件中定义外部调用参数(62行)
[Bindable]
public var _IntervalSecond:Number = 0;在InitApp方法中获取Js传的值,默认值为5(116行).
_IntervalSecond = getNumber(params,"IntervalSecond",5);
在FlexPaperViewer_Base.mxml文件中定义变量,供传值(141行)
[Bindable]
public var IntervalSecond:Number=0;在FlexPaperViewer.mxml文件末尾的<fp:FlexPaperViewer />中传参给FlexPaperViewer_Base。
IntervalSecond="{_IntervalSecond}" - 在FlexPaperViewer_Base.mxml同级目录中的FlexPaperViewer.mxml文件中添加如下变量和方法(207行):
//计时器参数
public var pstartTime:Number = 0;
public var pstarttimer:Timer; //上次阅读到的页数
public var lastPageNumber:Number=0;
/**
* 开始计时
*/
public function funTimer(event:TimerEvent):void{
pstartTime++;
} /**
* 停止计时 并归0
*/
public function PageTimerReset():void{
pstarttimer.reset();
pstartTime = 0;
pstarttimer.start();
} //上次阅读页数
private var _oldpage:Number=1; //是否已显示alert
private var isShowAlert:Boolean=false; // 关闭后触发的事件
private function alertClickFirst(event:CloseEvent):void {
isShowAlert=false;
//跳转指定页
paper1.gotoPage(_oldpage);
}FlexPaperViewer.mxml
在initApp方法中添加计时器启动代码(64行):
public function initApp():void {
//去除LOGO
paper1.removeElementAt(2); //初始化,计时器操作
pstarttimer=new Timer(1000);//1000是指1秒
pstarttimer.addEventListener(TimerEvent.TIMER, funTimer);
pstarttimer.start();
}initApp
修改formatPageNumber方法(243行):
protected function formatPageNumber(n:Number):String
{
//如果已弹窗,不继续执行
if(isShowAlert) return _oldpage.toString(); //如果当前页面不等于上次打开的页面,并且当前页面大于上次打开页面,并且时间小于设定间隔,开始提醒
if(n!=1 && n!=_oldpage && n>lastPageNumber && pstartTime<IntervalSecond)
{
//如果已经弹窗,就不再弹窗
if(!isShowAlert){
isShowAlert=true;
Alert.show("读书有三到,谓心到,眼到,口到。","", Alert.OK , this, alertClickFirst);
}
return _oldpage.toString();
}
else
{
if(_oldpage!=n)
//计时器重启
PageTimerReset(); _oldpage=n; if(n>lastPageNumber)
lastPageNumber=n;
if(viewer.ViewMode == ViewModeEnum.TWOPAGE)
return viewer.currPage.toString() + "-" + (viewer.currPage+1).toString();
else
return n.toString();
}
}formatPageNumber
11.增加上次阅读到xx功能
由于添加此功能,所以带翻页间隔的代码中就屏蔽掉了书签按钮。
这里的记录页数,是通过Js和FlexPaper进行交互获取,需要你自己处理保存在服务器中。
在默认包中FlexPaperViewer.mxml中定义_StartPage 变量,并在initApp方法中进行获取Js传的值,最后传递给FlexPaperViewer_Base中,同第10节定义变量。
[Bindable]
public var _StartPage:Number;
... _StartPage=getNumber(params,"StartPage",1); ... StartAtPage="{_StartPage}"
在FlexPaperViewer_Base.mxml中修改viewercreationCompleteHandler(205行) 和documentLoadedHandler(426行)方法:
private function viewercreationCompleteHandler(e:FlexEvent):void{
if(_documentLoadedFirst && !_stageinitialized){
dispatchEvent(new DocumentLoadedEvent(DocumentLoadedEvent.DOCUMENT_LOADED,viewer.numPages));
if(StartAtPage!=1&&!isNaN(StartAtPage)&&StartAtPage>0){
viewer.gotoPage(StartAtPage);
}
//flash.utils.setTimeout(function():void{
if(StartAtPage!=1&&!isNaN(StartAtPage)&&StartAtPage>0){viewer.gotoPage(StartAtPage);StartAtPage=-1;}
//},1000);
}
_stageinitialized = true;
}
viewercreationCompleteHandler
protected function documentLoadedHandler(event:Event):void{
if(_stageinitialized){
dispatchEvent(event);
if(StartAtPage!=1&&!isNaN(StartAtPage)&&StartAtPage>0){viewer.gotoPage(StartAtPage);}
flash.utils.setTimeout(function():void{
if(StartAtPage!=1&&!isNaN(StartAtPage)&&StartAtPage>0){viewer.gotoPage(StartAtPage);StartAtPage=-1;}
},1000);
}else{
_documentLoadedFirst = true;
}
}
documentLoadedHandler
在FlexPaperViewer_Base.mxml同级目录下FlexPaperViewer.mxml中<mx:HBox />节点下增加(用于显示提示信息):
<mx:HBox id="TitileBox" width="99%" backgroundColor="#FFF9F2" borderColor="#F6CB1E"
textAlign="center">
<mx:Label id="lblTitleMsg" width="90%" buttonMode="true" click="lblTitleMsg_clickHandler()"
fontSize="15" mouseChildren="false" useHandCursor="true"/>
<mx:Label id="lblCloseMsg" width="20" buttonMode="true" click="lblCloseMsg_clickHandler()"
fontSize="20" mouseChildren="false" text="×" toolTip="关闭提示" useHandCursor="true"/>
</mx:HBox>
用于显示提示信息
在FlexPaperViewer.mxml中 定义跳转和关闭方法(282行):
protected function lblCloseMsg_clickHandler():void
{
TitileBox.removeAllElements();
} protected function lblTitleMsg_clickHandler():void
{
paper1.gotoPage(1);
}
跳转和关闭方法
修改documentLoadedHandler 方法(114行):
protected override function documentLoadedHandler(event:Event):void{
spin1.visible = false;
lblProgress.visible = false;
spin1.stop();
bttnInfo.visible =false;
super.documentLoadedHandler(event);
if(StartAtPage==1 || isNaN(StartAtPage) || StartAtPage==0)
TitileBox.removeAllElements();
else
{
_oldpage=StartAtPage;
lblTitleMsg.text="您上次阅读到第 "+StartAtPage+" 页,点击这里返回第 1 页";
}
}
documentLoadedHandler
带翻页间隔二次开发源代码:下载
编译过版本:下载
2015-03-02 更新内容完
另外推荐几篇关于FlexPaper的博客:
flexPaper简单二次开发:http://www.cnblogs.com/longjunhao00/archive/2012/11/22/2782036.html
FlexPaper阅读器开发手册(原创) :http://wujwmail.blog.163.com/blog/static/17055443320119532652421/
FlexPaper二次开发问题及搜索高亮显示:http://www.cnblogs.com/zamlove/archive/2013/05/07/3065079.html
FlexPaper初步使用时遇到的问题解决:http://blog.sina.com.cn/s/blog_673c98be0101b49m.html
转载请注明出处:http://www.cnblogs.com/xcong/p/3142155.html
关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单、书签等相关问题的更多相关文章
- FlexPaper二次开发问题及搜索高亮显示
原文:FlexPaper二次开发问题及搜索高亮显示 最近有个需求,做一个IT知识库,类似于文库,说到文库肯定会用到在线浏览文档了,所有在网上翻阅了一下类似豆丁的在线浏览器插件的资料,将其进行了二次开发 ...
- phpcms v9版本二次开发四步曲
今晚看了一下PHPCMS V9版本,做一个实例抛砖引玉,其实很简单,以下是二次开发的一个实例以旅游模块为例1. 在phpcms\modules目录下建立一个文件夹tour2. 在phpcms\m ...
- 20190620_二次开发BarTender打印机时,未能解析主引用“Seagull.BarTender.Print, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86”
错误提示: 严重性 代码 说明 项目 文件 行 禁止显示状态警告 未能解析主引用"Seagull.BarTender.Print, Version=1.0.0.0, Culture=neut ...
- 【NX二次开发】不健全的双击按钮。
为什么说不健全,是因为 双击按钮时会先运行单击事件,这个后面再解决.但是模仿某公司的图层操作工具是没有问题了,因为这个工具运行双击事件时本来就需要运行单击事件,不仔细看容易被唬住. 图层操作工具(双击 ...
- Arcengine 二次开发添加右键菜单
最近在搞arcengine 二次开发,遇到了好多问题,也通过网上查资料试着慢慢解决了,把解决的步骤记录下来,有需要帮助的可以看一下,也欢迎各位来批评指正. 想给自己的map application在图 ...
- IBOS云办公系统二次开发之功能介绍(PHP技术)
IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...
- JBuss--为所有JFinal开发者提供二次开发的后台管理系统
百度搜索:JBuss 或jfinal.com官网https://www.jfinal.com/share/1704 JBuss背景: 2018年6月1日,作者“为道日损”从上海一家xxx公司离职,那时 ...
- InstallShield集成安装MSDE2000最小版本(二) fishout特许授权发布
原文:InstallShield集成安装MSDE2000最小版本(二) fishout特许授权发布 原帖地址:http://blog.csdn.net/fishout/archive/2009/10/ ...
- 基于redis实现tomcat8及以上版本的tomcat集群的session持久化实现(tomcat-redis-session-manager二次开发)
前言: 本项目是基于jcoleman的tomcat-redis-session-manager二次开发版本 1.修改了小部分实现逻辑 2.去除对juni.jar包的依赖 3.去除无效代码和老版本tom ...
随机推荐
- CSS 实现加载动画之七-彩环旋转
今天整理的这个动画估计大家都不会陌生,彩环旋转,看过之后是不是觉得很熟悉,对,这个就是优酷视频APP里面的加载动画.本人空余时间喜欢看些视频,留意到这个动画后就想用代码实现出来,今天整理了下,跟大家分 ...
- Firefox扩展开发
Firefox扩展开发 (插件开发) Extension开发 入门教程 5步走 五步走 首先需要知道什么是"Firefox插件".这里说的"插件"只是一个通 ...
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用
北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础 班级:1353 姓名:芦畅 傅冬菁 学号:20135308 20135311 成绩: 指导教师:娄家鹏 ...
- UUChart的使用--iOS绘制折线图
UUChart是一个用于绘制图表的第三方,尤其适合去绘制折线图. 二.下载地址: https://github.com/ZhipingYang/UUChartView 三.使用 第一步.首先我们将下载 ...
- 什么是co-training
首先先认识下什么是co-training: 在计算机视觉中,我们都知道训练一个分类器的时候,我们需要两类样本,分别是正样本和负样本.监督训练又可以成为off-line training,就是提前准备好 ...
- this,this,再次讨论javascript中的this,超全面
至于js中this这个东西,好多淫解释过了,看起来好高端的样子,不造你看懂了木有? 先引用比较高端的,“汤姆大叔“ 的,yes this 好了,下面加上鄙人比较挫的解释 论点: this 不是变量,不 ...
- [USACO2005][POJ3045]Cow Acrobats(贪心)
题目:http://poj.org/problem?id=3045 题意:每个牛都有一个wi和si,试将他们排序,每头牛的风险值等于前面所有牛的wj(j<i)之和-si,求风险值最大的牛的最小风 ...
- 第四十一课:CSS3 animation详解
animation是css3的另一个重要的模块,它成型比transition晚,吸取了Flash的关键帧的理念,实用性高. animation是一个复合样式,它可以细分为8个更细的样式. (1)ani ...
- Java web 学习之旅
java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...
- Java基础-数据类型转换
1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时. 自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...