Flex 4.6 自定义Datagrid添加checkbox\图片等功能

2012-03-28 Flex

flex 4.6 中的 spark 的Datagrid相比于之前的 mx 有很大不同

实现自定义<s:itemRenderer>详见代码~

<s:DataGrid id="dg" left="14" right="10" top="35" bottom="9" dataProvider="{datagrid_data}">
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="程序名称"
dataField="name">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<s:HGroup verticalAlign="middle">
<s:CheckBox id="cbx"/>
<s:BitmapImage width="24" height="24" source="{data.pic}"/>
<s:Label text="{data.name}"/>
</s:HGroup>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
<s:GridColumn dataField="date" headerText="更新时间"/>
<s:GridColumn dataField="version" headerText="版本号"/>
<s:GridColumn dataField="moduleUrl" headerText="moduleUrl"/>
<s:GridColumn />
</s:ArrayList>
</s:columns>
</s:DataGrid>

flex4 ColumnChart外包裹NavigatorContent进行TabNavigator分页出错,柱子移位

2012-03-28 Flex

之前单页面的ColumnChart显示图标正常。 后来用TabNavigator进行分2页,每个页面用NavigatorContent, 在NavigatorContent中 再添加ColumnChart 出现了柱子移位的现象。

在ColumnChart 外包裹一层BorderContainer ,问题解决。~

<mx:TabNavigator id="tabnavigator1" width="100%" height="100%" >
<s:NavigatorContent id="nc_Id_1" label="调峰报告"
icon="@Embed('assets/icon/list/48.png')" width="100%" height="100%">
<ElectroLoadShifting:Usefuldays width="100%" height="100%" id="usefuldays_id"/>
</s:NavigatorContent>

<s:NavigatorContent id="nc_Id_2" label="调峰执行"
icon="@Embed('assets/icon/list/48.png')" width="100%" height="100%" >

<s:HGroup width="100%" height="100%" paddingLeft="1" paddingRight="10"
verticalAlign="middle" includeIn="loadingState">
<s:BorderContainer width="100%" height="100%" borderVisible="false" >
<s:HGroup width="100%" height="100%" >
<s:Label id="unit_id" width="18" height="100%"
text="{'用电量︵'+_model.loadingShitServerModel.unit+'︶'}"
verticalAlign="middle"/>
<s:VGroup width="100%" height="100%">
<s:Label text="近30天用电量"/>
<mx:ColumnChart id="column" height="100%" color="0x323232" width="100%"
showDataTips="true" dataProvider="{_model.loadingShitServerModel.datas}"
dataTipRenderer="common.skin.ColumnChart_DatatipSkin" creationComplete="init()"
>
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="time"/>
</mx:horizontalAxis>

<mx:series>
<mx:ColumnSeries xField="time" yField="data" displayName="日用电量" id="columSeries_id" />
</mx:series>
</mx:ColumnChart>
</s:VGroup>

</s:HGroup>
</s:BorderContainer>

</s:HGroup>

<s:HGroup width="100%" height="100%" includeIn="coarseTurningState">
<ElectroLoadShifting:CoarseTurning id="coarseTurning_id" width="100%" height="100%"/>
</s:HGroup>
<s:HGroup width="100%" height="100%" includeIn="fineTurningState">
<ElectroLoadShifting:FineTurning id="fineTurning_id" width="100%" height="100%"/>
</s:HGroup>
<s:HGroup width="100%" height="100%" includeIn="powerSchemeState">
<ElectroLoadShifting:PowerScheme id="powerScheme_id" width="100%" height="100%"/>
</s:HGroup>

</s:NavigatorContent>

</mx:TabNavigator>

Q.yuhen推介的一些书籍

2012-01-28 Uncategorized

Q.yuhen:比较喜欢的一些图书,推荐给大家。

Linux 管理:

《Linux 系统管理技术手册》 案头必备的工具书。

《鸟哥的 Linux 私房菜》不错的入门书。

《Linux 101 Hacks》常用命令手册

《UNIX Shell Scripting》写脚本的参考书

《The Linux Command Line》更详细的命令手册

Linux 编程:

《Linux 系统编程》对常用 API 讲述最详细的一本书

《UNIX 环境高级编程》经典

《The Linux Programming Interface》与上本书配套

《程序员的自我修养》别被名字误导,极好的一本深度基础书。

《深入理解 Linux 内核》可以翻翻,对提升细节理解有好处。

《UNIX 网络编程》经典

《TCP/IP 高级编程》好书

C/C++:

《C 程序设计语言》入门书

《Lnux C 编程一站式学习》Linux 下开发的入门书

《C 语言核心技术》参考手册

《彻底搞定 C 指针》最好的指针入门书

《C++ 编程思想》经典

《高质量程序设计指南——C/C++语言》经典

《C 专家编程》

《C 和指针》

《C 陷阱与缺陷》

Golang:

《Learing Go》简单

《The Go Programming Language》比较详细

《The way to Go》提升

Javascript:

《Javascript, A Beginner’s Guide》

《Object-Oriented Javascript》

Python:

《Python Pocket Reference》适合经常翻翻

《Expert Python Programming》某些地方很有启发

其他:

《深入理解计算机系统》经典,必读

《计算机组成与设计》可以翻翻

《汇编语言》王爽 最好的汇编入门书

《数据结构》C 语言版 经典

《Java 数据结构和算法》更易阅读

《Debug Hacks 中文版》GDB 入门书

《设计模式——可复用面向对象软件的基础》经典

《MongoDB, The Definitive Guide》


Flex4 发布后访问,初始化极其缓慢的问题 解决方案

2011-07-14 Flex

  • Flex项目初始化太慢!Flex4为了加快加载速度使用了RSL,即把可以共享的框架、类库单独生成文件,并在请求时缓存到 Flash cache中,这样只要是同域的Flex项目就都可以使用而不必重新加载从而加快了加载时间。而问题也恰恰处在这个默认设置上,这些共享文件的优先位置是 从Adobe的服务端上下载,正是这个请求下载过程造成了加载奇慢。解决的办法就是将这些文件的位置优先指向自己的服务器(本地),Flash builder的Release 发布也可以生成这些文件,只要将这些.swz文件上传至服务器即可。

  • 如何设置RSL路径。网上找了半天,大多数是flex-config.xml,但这个是Flex3的,Flex4 默认是不使用这个文件了。在Adobe的帮助文档上找到了Customize the deployment location of the framework RSLs(http://help.adobe.com/en_US/flex/using/WS2db454920 e96a9e51e63e3d11c0bf69084-7add.html)设置方法如图,打开项目–属性–flex构建路径–库路径标签,点开 Flex4.1 选择framework.swc的链接类型–编辑–弹出库路径选项框。 可以看到默认的adobe的server路径在第一个,第二个是本地路径(要求与swf在同目录),将第二个调到第一位置(图中已调整)。当然也可以自定义路径,可以是相对的或绝对地址。点击确定保存设置。 这样依次设置 framework_4.6.0.23201.swz textLayout_2.0.0.232.swz 等等

  • 最后点击项目–导出发行版,在bin-releas下可以看到生成的.swz文件,第一次要把所有的文件上传到网站,以后只要是同域的其他Flex项目指定好RSL路径,就不必再上传.swz文件了,这样大大减小了swf文件的大小,加快了加载速度。

到此解决了开始的问题,同时使得RSL的优点也得到体现。

查考: http://forums.adobe.com/message/2428795#2428795 http://blog.163.com/vituk93@126/blog/static/170958034201282222046364/


Tomcat设置,输入IP地址 ,直接访问项目主页

2011-05-24 Tomcat

1.cmd 命令 看下 80 端口是否被占用

netstat -ano

2.没有被占用的话,将tomcat的端口设成80

配置文件的路径为\pache Software Foundation\Tomcat 6.0\conf\server.xml

<Connector port="80" protocol="HTTP/1.1" 
connectionTimeout="20000" 
redirectPort="8443" URIEncoding="UTF-8"/>

3.修改tomcat配置,默认访问指定项目

在<host />里面添加如下:

<Context path="" docBase="D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\abc" />

docBase 是你的项目路径

这样 ,直接输入IP地址,就会映射到你的项目的index.html

 


Flex 4.6 XML搜索、匹配示例

2011-05-20 Flex

效果见图

初始化界面

输入“设置”,进行搜索、匹配后界面

下面是代码 <?xml version=”1.0” encoding=”utf-8”?> <![CDATA[ import mx.events.FlexEvent; import mx.utils.StringUtil; import spark.events.TextOperationEvent;

		public var rawList:XML = 
			<apps name="应用程序" >
			  <item name="关于"
			  		icon="plugins/about_002/assets/icons/about_48.png" 
			  		iconSmall="plugins/about_002/assets/icons/about_24.png" 
			  		moduleUrl="plugins/about_002/Ahout_002.swf"
			  		version="1.0"  date="2013-5-13"  author="way" type="plugin"
			  		description="关于能源管理中心的一个说明" />

			 <item name="程序管理" 
			  		icon="plugins/appManager_001/assets/icons/apps_48.png" 
			  		iconSmall="plugins/appManager_001/assets/icons/apps_24.png"
			  		moduleUrl="plugins/appManager_001/AppManager_001.swf"
			  		version="1.0"  date="2013-3-5"  author="way" type="plugin"  resizable="false"
			  		description="对系统应用,及用户自定义应用进行管理"
			  		shortCutCreated="true"/>

			  <item name="导航设置" 
			  		icon="plugins/navigatorSetting_001/assets/icons/gears_48.png" 
			  		iconSmall="plugins/navigatorSetting_001/assets/icons/gears_24.png" 
			  		moduleUrl="plugins/navigatorSetting_001/NavigatorSetting_001.swf"
			  		version="1.0"  date="2013-3-13" author="way" type="plugin" resizable="false"
					description="对导航进行设置"/>
			  <item name="主题设置" 
			  		icon="plugins/themeSetting_001/assets/icons/icon_48.png" 
			  		iconSmall="plugins/themeSetting_001/assets/icons/icon_24.png" 
			  		moduleUrl="plugins/themeSetting_001/ThemeSetting_001.swf"
			  		version="1.0"  date="2013-3-5" author="way" type="plugin" resizable="false"
			  		description="对系统的主题、样式进行设置"/>
		    </apps>
			;     

		[Bindable]
		public var rawListShow:XML = null;  //搜索过滤后的数据

		protected function init(event:FlexEvent):void
		{
			getData();
		}

		protected function textinput1_changeHandler(event:TextOperationEvent):void
		{
			getData();
		}

		//初始化数据
		private function getData():void{
			if(StringUtil.trim(textInput.text) == ""){
				rawListShow = rawList ;

			}else{
				createNewXml(textInput.text,rawList);
			}

			/* 打开或关闭指定项目下的所有树项目。如果设置 dataProvider 之后立即调用 expandChildrenOf(),
			则您可能看不到正确的行为。您应该等待对组件进行验证或调用 validateNow() 方法 */
			tree1.validateNow();

			expandtree();
		}

		//搜索过滤后,生产新的xml
		private function createNewXml(searchString:String, xml:XML):void{
			rawListShow =<apps  name="应用程序" />;

			for(var i:int = 0; i<xml.children().length(); i++)
			{
				var itemXml:XML = xml.child("item")[i];
				if(isInStr(searchString,[email protected]())){   
					rawListShow.appendChild(itemXml);
				}
			}
		}

		//判断search_str是否在str内 
		public function isInStr(search_str:String , str:String):Boolean{    
			var num:int= str.indexOf(search_str);
			if(num>-1){
				return true;
			}else{
				return false;
			}
		}

		//展开树
		private function expandtree():void {
			for each(var item:XML in this.tree1.dataProvider)
			this.tree1.expandChildrenOf(item,true);
		}

	]]>
</fx:Script>
<fx:Declarations>
	<!-- 该例子由waylau.com提供-->
</fx:Declarations>
<s:TextInput prompt="请输入要搜索的字段"  x="10" y="10" 
			 change="textinput1_changeHandler(event)" id="textInput"/>
<mx:Tree id="tree1" dataProvider="{rawListShow}" 
		 labelField="@name" width="200" height="300" x="10" y="40">
</mx:Tree>

<s:Label text="更多例子 请关注  waylau.com" x="10" y="360"/>
</s:Application>

简单实现浏览国外著名网站的方法,不用梯子,修改本机的 hosts

2011-04-28 Web

修改本机的 hosts 文件

一般的

hosts文件在不同操作系统(甚至不同Windows版本)的位置都不大一样: Windows NT/2000/XP/Vista/7/8(即微软NT系列操作系统):默认位置为%SystemRoot%\system32\drivers\etc\,但也可以改变。动态目录由注册表键\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath决定。 Windows 95/98/Me:%WinDir%
Linux及其他类Unix操作系统:/etc Mac OS 9及更早的系统:System Folder: Preferences或System folder(文件格式可能与Windows和Linux所对应的文件不同) Mac OS X:/private/etc(使用BSD风格的hosts文件) OS/2及eComStation:”bootdrive”:\mptn\etc
Android:/system/etc/hosts Symbian第1/2版手机:C:\system\data\hosts Symbian第3版手机:C:\private\10000882\hosts,只能使用兼容AllFiles的文件浏览器访问,大部分都不行[1]。 iOS(iPhone):/etc iOS(iPad):/private/etc webOS:/etc

文件中添加要访问的IP 和 域名即可

127.0.0.1 localhost
127.0.0.1 activate.adobe.com
74.125.224.231 drive.google.com
203.208.46.206 m.youtube.com
203.208.46.206 s.ytimg.com
203.208.46.206 www.youtube.com

hosts文件也可以用于其它情况,例如可以将已知的广告服务器重定向到无广告的机器(通常是本地的IP地址:127.0.0.1)上来过滤广告。同时也可以通过不下载网络广告,从而减少带宽。使用hosts文件还可以减少对DNS服务器的访问来加快访问速度并减少带宽消耗。 hosts文件的另一个重要用途就是用于拦截一些恶意网站的请求,从而防止访问欺诈网站或感染一些病毒或恶意软件。但同时,这个文件也可能被病毒或恶意软件所利用来阻止用户更新杀毒软件或访问特定网站。

文章参考:http://zh.wikipedia.org/wiki/Hosts%E6%96%87%E4%BB%B6

更多参数看考:http://code.google.com/p/smarthosts/

http://code.google.com/p/huhamhire-hosts/



Flex addChild与addElement的区别

2011-01-01 Flex

  • addChild()接受的是一个DisplayObject对象,addElement()接受的是一个IVisualElement对象,IVisualElement是在Flex 4组件中开始应用的,所以Flex 3当中的组件没有实现IVisualElement接口,再所以Flex 3当中的容器用的是addChild()。
  • 而Flex 4中的spark组件已经实现了IVisualElement接口,所以可以用addElement(),在Flex 4中使用Flex 3的组件和其它没有实现IVisualElement接口的组件时,可以使用addElement(UIComponent(flex_3_comp)),就相当于用UIComponent来做一下包装。
  • 在Flex 4容器中,其实内建了一个Group类型的contentGroup用来存放容器中的元素,而正是Group类定义了addElement(),所以Flex 4容器不用addChild(),而是用addElement()
  • 如果是spark(如s:Group)容器,用addElement。如果是hola(如mx:Hbox)容器,就用addChild。

参考:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf62b90-7fe9.html


校园网信息网络安全问题以及对策综述

2010-05-31 Security

摘要: 21世纪,计算机网络技术飞速发展,网络改变了人们的生活方式、学习方式,也为学校信息化建设注入了新的生机活力。但同时由于网络的自身开放性、互联性和共享性的特点,也为校园网的安全带来的威胁和挑战。校园网不可避免地受到病毒、黑客、恶意程序和其它的安全威胁和攻击,造成校园网数据丢失、系统被改、网络瘫痪等。本文分析了校园网的现状特点和存在的主要问题,提出了应对校园网威胁的安全策略。

关键词: 计算机网络;校园网;威胁;防范




Way Lau

Software Engineer and Full Stack Developer, now work and live in Shenzhen, China. Detail

Donate

See the list of Donors.