URL(I)/XMLBuilder/flex横方块/amCharts..工作日志

简单记录一下今天的工作日志:
1、 URL/uri的区别:
这个问题之前也困惑过、搜索过但仍没有彻底弄清楚,^_^ ^_^ 发现网上的解释也大多是照搬概念。
URL(Uniform Resource Location):统一资源定位器,格式为:{协议<服务方式>/粗放资源的主机IP地址<端口>/主机资源具体位置}。
URL的最大缺点是: 当信息资源的存放地点发生变化时,必须对URL作相应的改变

URI(universal Resource Identifier):统一资源标识符,格式为:{访问资源的命名机制/存放资源的主机名/资源自身的名称}

2、自定义一个类XMLBuilder, 专用于操作XML。Java API中操作XML的常用类有如下:
DocumentBuilderFactory, DocumentBuilder, Document, SAX, XPath,
xPathFactory, XPathExpression(提供了对编译后的xpath表达式的访问),
xPathConstants, Node, NamedNodeMap, NodeList,Attribute

打算有时间的话写一个操作XML的工具类,会熟悉上述API的用法。

3、 flex中制作长方条用来显示使用率等(flex4中)
组件:HpercenterBar.mxml
<borderContainer xmlns... ...>
<s:layout>
<s:HorizontalLayout verticalAlign="middle"/></s:layout>
<s:Rect precentwidth="xx" precentHigh="yyy" alpha="zzz">
<s:fill>
<s:solidColor color="xx"/>
</s:fill>
</s:Rect>
然后在dataGrid中使用
<mx:itemRenderer>
<fx:component>
...
</fx:component>
</mx:itemRenderer>


4、 Flex常用效果组件的使用
animateProperty动画效果
blur模糊效果
wipeUp/wipeRight/wipeDown/wipeLeft擦出效果
zoom缩放效果(注意其与resize的区别)
glow发光效果
Irist效果:通过扩展或收缩集中在目标上的巨型遮罩为效果目标设置动画
pause效果:实现在制定时间内不执行任何操作的功能,如果作为sequence效果的子项,可以创建2个其他效果之间的暂停

5、负载均衡器(LoadBalancer)
随集群一起部署, 提供如下功能:
#允许应用程序或服务在多个物理(或逻辑)主机之间水平伸缩,但用户通过统一的URL进行访问
#使用户与主机故障或服务器崩溃隔离(与会话持久性结合使用时)。
#通过对用户隐藏内部网络来提高安全性

LoadBalancer的特征:
实现了分布式session管理,这也是实现Web服务器集群的关键,由于Web应用被分布到多台服务器上运行,因此保存在Session中的共享数据必须完全保持一致。Apusic LoadBalancer没有使用共享数据库来保存Session数据,共享数据库模式下,由于Session的变化是很频繁的,对数据库将造成很大的压力,最终将成为整个系统的瓶颈,Apusic LoadBalancer使用一种分布式Session服务,每个服务器管理自己所产生的Session。当Web应用从一台服务器迁移到另一台服务器时,Session也会自动进行迁移,这样使得对Session的管理被均匀地分布到所有的服务器上,任何一台服务器失效并不会使Session丢失。对应用开发者来说,要保证分布式Session能够正常工作,在Session中只能保存实现了java.io.Serializable的数据,否则 Session将无法完成迁移。

负载均衡策略:
a)随机选择策略
b)Round-Robin策略
c)权重策略

Apusic LoadBalancer使用了内存复制技术,将每个后置服务器的Session备份在自己的缓存中,即后台某个节点处理完客户端请求时,将当前Session复制到负载均衡器中。所以使用Apusic LoadBalance时,集群中每个节点必须开启SessionService中的复制服务。

失效转移:
采用Apusic LoadBalancer时,由于Session缓存在Apusic LoadBalancer的缓存中,当主节点失效时,Apusic LoadBalancer从缓存取出当前的Session,将Session带到下一个节点进行处理,确保Session的可用性

配置负载均衡:
Apusic负载均衡器是用Apusic应用服务器实现的,也就是说,负载均衡器和其他金蝶Apusic应用服务器6.0实例没有本质区别,不同的是它上面没有安装应用系统,并且使用不同的配置文件,它只是专门提供负载均衡服务。客户通过访问负载均衡器的Web服务,来访问整个集群的资源。用户请求到达负载均衡器后,负载均衡器将它分配到某个金蝶Apusic应用服务器6.0实例上,让这个实例为此用户请求提供服务。


Apusic的session复制策略:
当采用第三方负载均衡器时,金蝶Apusic应用服务器6.0同样采用内存复制技术,与Apusic LoadBalancer不同的是,我们已经不能用第三方负载均衡器来备份状态,因此,采用了使用IP多播技术,通过IP多播和Java序列化/反序列化技术在集群中的金蝶Apusic应用服务器实例之间进行内存复制,这时候,需要开启金蝶Apusic应用服务器6.0的集群服务。Apusic集群支持两种Session复制策略:多点复制,配对复制,用户可以根据自己的需要选择不同的复制策略。默认情况下为配对复制。


6、 改ofc2为amCharts时遇到诡异错误(在组件中使用pieChart):
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at com.amcharts::AmPieChart/calculatePercents()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:912]
at com.amcharts::AmPieChart/updateData()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:844]
at com.amcharts.chartClasses::AmChart/commitProperties()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\chartClasses\AmChart.as:260]
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]

诡异之处在于: 同样的图表在application页面中能正确显示,然而其不能在组件中正确显示。

关于调试的技巧: 使用try...catch 捕获查看其异常信息、 通过异常中的信息calculatePercents()而在数据源方面进行测试后发现异常的根源是在于数据上, 如何解决?
待尝试方案:

a)将arrayCollection类型的数据源替换为array或者其他amChart所支持的类型

b)在工程中新建flex模块进行试验(怀疑amCharts在单个application中能正确显示而在项目中不能显示是因为项目中采取的是加载模块...)


7、 两种访问操作系统的方式SSH/VNC初探

——————————————8月10日——————————————————
1、 flex缩放效果
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#03BF7A, #075F96]">
<mx:Zoom id="Zoom1" originX="0" originY="0" zoomHeightFrom=".4" zoomHeightTo="1" zoomWidthFrom=".4" zoomWidthTo="1" duration="1000" />
<mx:Zoom id="Zoom2" originX="0" originY="0" zoomHeightFrom="1" zoomHeightTo=".4" zoomWidthFrom="1" zoomWidthTo=".4" duration="1000" />
<mx:Image x="442" y="76" source="images/C.jpg" mouseDownEffect="{Zoom1}" mouseUpEffect="{Zoom2}" width="318" height="316"/>
<mx:Label x="476" y="33" text="Flex制作Zoom缩放效果" width="273" fontWeight="bold" fontSize="24" color="#F7F9FB"/>
</mx:Application>


2、 关于常用的两个技巧的优劣讨论:
a>在几乎所有的参数传递,返回值与传递值都是用一个通用的数据结构,该数据结构是一棵树,

并且每棵树上还有一个hashtable存放一些键值对
b>需用到所有常量都写在一个类,public static final那种然后需要用到这些常量的类继承该类

3、amcharts的另类破解法(gtalk上附url)
a>
需要继承AmChart的类,将宽、高、透明度设成0,例如:

public class Serial extends AmSerialChart
{
override protected function createChildren():void{
super.createChildren();
if(_amchartsLink){
_amchartsLink.alpha=0;
_amchartsLink.width=0;
_amchartsLink.height=0;
}
return;
}
b>使用其他的组件将其覆盖


4、 在IDE中新建flex工程,运行flex application不出现东东? 探索...ing

5、 flex中路径问题:
方式一: <mx:ModuleLoader url='"{ApplicationContext.getContextRoot

()}"+"/resource/swf/module/MonitorCenterModule.swf"'/> ——错误

方式二:<mx:ModuleLoader url="{ApplicationContext.getContextRoot

()}/resource/swf/module/MonitorCenterModule.swf"/>——错误

打印的ApplicationContext.getContextRoot()值为:
http://localhost:8080/apusic-cloud

方式三: <mx:ModuleLoader url="http://localhost:8080/apusic-

cloud/resource/swf/module/MonitorCenterModule.swf"/>——正确

方式四: <mx:ModuleLoader url='{ApplicationContext.getContextRoot()

+"resource/swf/module/MonitorCenterModule.swf"}'/>——错误

方式五(函数式):
private var correctUrl:String;
private function initTest():void{

correctUrl = ApplicationContext.getContextRoot()

+"/resource/swf/module/MonitorCenterModule.swf";
Alert.show(correctUrl);
}
在页面初始化时使用creationComplete="initTest()"
<mx:ModuleLoader width="100%" height="100%" url="{correctUrl}"/>--仍然错误

补充——打印correctUrl的值为:
http://localhost:8080/apusic-cloud/resource/swf/module/MonitorCenterModule.swf

6、 /根
../上一级目录

7、 修复comboBox在popButton上移动的小bug

8、 google上搜索 amcharts mx module 帮助定位问题所在

9、 flex模块化的目的和方法
xml <!-- [xml] (xml / csv) 数据类型xml/csv--> ; <!-- 如果使用csv作为数据的话,需要使用这个属性;表示文件数据分隔符,(平常以";"和","为主) [;] (string) csv file data separator (you need it only if you are using csv file for your data) --> 1 <!-- 如果使用的是csv数据,可以设置跳过几行再显示数据,默认为0表示csv中的数据全部显示,大于n(n>0);表示前面n行都不显示[0] (Number) if you are using csv data type, you can set the number of rows which should be skipped here --> <!-- 设置系统中的字体[Arial] (font name) use device fonts, such as Arial, Times New Roman, Tahoma, Verdana... --> <!-- 设置所有文本的大小,默认为11,具体的文本的字体大小也可以在下面的设置中设置[11] (Number) text size of all texts. Every text size can be set individually in the settings below --> <!-- 同上[#000000] (hex color code) main text color. Every text color can be set individually in the settings below--> . <!-- 小数分隔符,默认为[,]注:该属性只是用来显示,而在csv数据文件中,必须使用[.] (string) decimal separator. Note, that this is for displaying data only. Decimals in data xml file must be separated with a dot --> <!-- 千位分隔符,默认为空[ ] (string) thousand separator. use "none" if you don't want to separate --> 3 <!-- 如果百分数格式的数字,后面的小数位小于该属性的值,则在小数后面加0补充。如54.2%,该属性设置为3,那么显示的效果为54.200%。[] (Number) if your value has less digits after decimal then is set here, zeroes will be added --> <!--设置科学记数法的最小值 [0.000001] If absolute value of your number is equal or less then scientific_min, this number will be form
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值