Open Flash Chart 扩展实现

Open Flash Chart(以下称OFC)

说明:
1、OFC源码是开发工具FlashDevelop的工程,用FlashDevelop可以直接打开调试。
2、OFC源码的入口在main.as文件,直接运行此文件即可。

【扩展】扩展OFC作出了如下修改,以雷达图为例
【需求】给雷达图每个项目添加点击事件并与JavaScript交互。

【以下是修改的步骤】
1、打开elements.axis.RadarSpokeLabels类,
找到方法public function add( label:Object, style:Object ) : void
在对象 var label_style:Object={}里加属性serviceId:'',

2、再接着往下看,找到这一行:var l:TextField = this.make_label( label_style );
紧跟这一行添加如下三个事件:

l.addEventListener(MouseEvent.MOUSE_OVER, mouseoverHandle);  //鼠标移入事件
l.addEventListener(MouseEvent.MOUSE_OUT, mouseoutHandle);    //鼠标移出事件
l.addEventListener(MouseEvent.CLICK,clickhandle);            //鼠标点击事件

然后在本类中添加这些事件的响应方法:
public function mouseoverHandle(event:MouseEvent):void{
(event.target as TextField).background = true;
(event.target as TextField).backgroundColor=0xFFFF00;
(event.target as TextField).textColor = 0xD80C00;
}
public function mouseoutHandle(event:MouseEvent):void{
(event.target as TextField).background = false;
(event.target as TextField).textColor = 0x000000;
}
public function clickhandle(event:MouseEvent):void {
trace(event.target.text+" serviceId=" + event.target.serviceId+"  js方法:" + this.click_handel);
ExternalInterface.call(this.click_handel, event.target.text+" serviceId=" + event.target.serviceId);
}


3、在类开头定义全局变量:private var click_handel:String = "";
回到类的构造方法public function RadarSpokeLabels( json:Object )中,在构造方法的第一行添加代码
this.click_handel = json['click_handel'];
然后找到在构造方法中找到
this.style = {
colour: '#784016'
};
在里面添加属性click_handel:  json['click_handel']

源码修改完毕,基本满足需求。

【修改JSON数据格式】雷达图的json数据中做出如下修改:
1、在spoke-labels里面添加一项:"click_handel":"MyJsFunction"
这样就可以跟js交互。
2、在spoke-labels元素的labels中,每一项添加一个"serviceId":"值"





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值