`
smartinvoke
  • 浏览: 106489 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

smartinvoke入门系列2——smartinvoke轻松上手

阅读更多



 简介:

本篇为smartinvoke开发系列的第一篇,主要让大家对smartinvoke有一个整体的认识,能够开发出简单独立的smartinvoke可运行桌面程序。

创建SmartInvoke项目:

依次选择Eclipse菜单栏中的 :文件 -> 新建 -> 其他 打开新建对话框,找到smartinvoke节点,选择New Project 节点,打开新建smartinvoke项目对话框,如下:

 

 

Project name 为项目名称;我们在这里输入:First

Main package 为项目入口类所在包名;我们在这里输入:cn.first

Class name 为项目入口类的类名称;我们在这里输入:FirstWin

 

输入完毕后点击完成,你会发现项目列表中新创建了两个项目,一个为Java类型项目,一个为Flex web application类型项目,结构如下图:




 
 

 

 

这两个项目构成了一个完整的smartinvoke项目First,它由Java类型项目FirstFlex类型项目First_构成。Flex项目名称由Java项目名称加下划线”_”构成。通过这种项目名称的约定规则,smartInvoke IDE 将这两个项目关联在一起了。

这样一来,当调试或运行First_项目的FirstWin.mxml时,eclipse 不再是调用本机浏览器加载对应的swf了,而是调用关联的Java项目的入口类cn.first. FirstWin加载该swf。这样就实现了smartinvoke项目的开发与调试。Java项目First中的cn.first. FirstWin类是整个smartinvoke项目的入口类,它的main方法最先由jre调用执行。同时该类还控制着程序首先加载的swf文件的路径,程序打开主窗口的样式等。

 

通过将一个smartinvoke项目分割为两个相互关联的Java类型项目与Flex项目构成,这样使得程序的功能分工更加明确,Java负责逻辑,Flex负责界面显示。JavaFlex通信细节交由smartinvoke 完成。这样可以大大提高开发效率与代码的复用率。

 

创建服务类型(Service Class Type)实现Flex调用Java

这里的服务类型即实现了cn.smartinvoke.IServerObject接口的Java类,通过smartinvoke,该类的public 方法可以被Flex直接访问到。

点击eclipse 工具栏上的图标

 
打开Create new smartinvoke type 对话框如下图所示:



 

 

 

点击完成后,会在First项目的cn.first包中新建一名称为ServiceTest的类。内容如下:

package cn.first;

 import cn.smartinvoke.IServerObject;

 import cn.smartinvoke.ide.declare.AServiceType;

 @AServiceType

 public class ServiceTest implements IServerObject {

 public ServiceTest() {

        //smarinvoke will call this default constructure.

 }

 public void gc(){

     //when this service object not be used smartinvoke call this method free memory.

 }

}

然后我们在ServiceTest类中添加一简单的方法供Flex调用,如下:

public String hello(String info){

     System.out.println(info);

     return "hello Flex I'm java";

 }

 

我们会发现在ServiceTest类的申明处添加了@AServiceType注解,该注解的作用是告诉eclipse 可以将该类翻译成Flex可以直接调用的as代码。只有标记了@AServiceType注解的类eclipse才将其翻译为对应的as代码,所以如果想自定义一些调用逻辑可以将该注解注释掉。我们可以在关联的Flex项目First_的对应源代码目录cn/first下发现ServiceTest.as类,内容如下:

 

package cn.first{

import cn.smartinvoke.RemoteObject;

[RemoteClass(alias="cn.first.ServiceTest")]

public class ServiceTest extends RemoteObject{

 public static function CreateInstance0():ServiceTest{

var instance:ServiceTest=new ServiceTest();

instance.createRemoteObject(arguments);

return instance;

 }

 public function hello(info:String):String{

  var ret:Object=this.call('hello',arguments);

 return ret as String;

 }

}

}

 

细心观察下会发现ServiceTest.as类的方法与ServiceTest.javapublic 方法是一一对应的。

Flex调用ServiceTest.as类中的hello方法时,其实是去调用对应的ServiceTest.java服务类中的hello方法,并获得对应返回值。

所以我们把ServiceTest.as类叫做:代理类型(Remote Class Type)。所有的代理类都继承了cn.smartinvoke.RemoteObject类。

 

修改First_项目的FirstWin.mxml文件的内容如下:

<?xml version="1.0" encoding="utf-8"?>

<si:SIApplication xmlns:mx="http://www.adobe.com/2006/mxml"

     xmlns:si="http://smartinvoke.cn" creationComplete="init()"

     layout="absolute" fontSize="12">

     <mx:Script>

        <![CDATA[

            import cn.first.ServiceTest;

           

            import mx.controls.Alert;

           private function init():void{

               //创建对应的java服务类型对象         

               var serv:ServiceTest=ServiceTest.CreateInstance0();

               //调用java服务对象上的方法

               var res:String=serv.hello("Hello Java I'm Flex");

              

               Alert.show(res);

               //当我们不再使用该对象后,回收该服务对象的资源

               serv.gc();

           }

        ]]>

     </mx:Script>

</si:SIApplication>

       

和普通flex web applicationch程序运行方式一样,右键FirstWin.mxml将该文件运行为web应用程序就可以看到程序运行效果了。

细心的同学会发现这里的FirstWin.mxml并没有继承自mx.core.Application而是继承自:cn.smartinvoke.gui.SIApplicationSIApplication类,它封装了与Java通信的细节,使得SIApplication具有了访问Java对象的能力。在SmartInvoke中所有的窗口类都应该继承自SIApplication类。

  • 大小: 22.3 KB
  • 大小: 15.2 KB
  • 大小: 802 Bytes
  • 大小: 27.8 KB
分享到:
评论
3 楼 gyx376987739 2011-03-28  
楼主能留个联系方式吗?最近在看个东西,感觉很不错。中间也碰到不少问题。我的qq:376987739,邮箱376987739@qq.com。加个好友,交流交流可以吗?
2 楼 smartinvoke 2011-03-14  
smartinvoke项目分为两个子项目,第一个为java项目,第二个为flex项目,flex项目的名称以java项目名称加下划线"_"的形式,根据你的描述,感觉你没有遵循这个规则呢
1 楼 gyx376987739 2011-03-14  
我安装成功了,但是java项目里没有swc 程序报错,是怎么回事?
报这个错误
Illegal type of archive for required library: 'C:\Program Files\Adobe\Adobe Flash Builder 4\cn.smartinvoke.libs\libs\cn.smartinvoke.core.swc' in project 'first'

这个目录下是有swc这个文件的,但是在项目first下 reference library下面只有4个jar,没有swc。请楼主帮忙解答下

相关推荐

    通过SmartInvoke运用java与flex轻松构建cs程序.doc

    ### 通过SmartInvoke运用Java与Flex轻松构建CS程序 #### 概述 本文旨在介绍如何利用SmartInvoke技术结合Java和Flex构建高效的客户端-服务器(CS)应用程序。文章着重讲解了SmartInvoke的基础设置、项目创建流程及...

    cn.smartinvoke.ide

    2. **IDE(集成开发环境)**:一个IDE是程序员用来编写、调试和测试代码的软件工具。cn.smartinvoke.ide提供了一个集中的工作空间,其中包含了编辑器、调试器、版本控制工具等,以提高开发效率。它可能还具有项目...

    SmartInvoke库和示例

    在Java和C#的集成上,SmartInvoke库提供了灵活的API,使得开发者可以轻松地在两种语言之间传递数据和调用方法。例如,Java开发者可以创建服务端接口,这些接口在Flex客户端被调用,就像调用本地函数一样简单。同样,...

    C#与flex交互

    2. **项目配置**: - **Flex项目配置**: - **新建项目**:创建一个Flex项目,选择适当的Flex SDK和Flash Player版本。 - **设置构建路径**:确保库路径包含了所有必要的库文件,如Flex SDK的lib目录。 - **编辑...

    java计算器源码.zip

    java毕业设计源码,可供参考

    FRP Manager-V1.19.2

    Windows下的FRP图形化客户端,对应FRP版本0.61.1,需要64位操作系统

    基于优化EKF的PMSM无位置传感器矢量控制研究_崔鹏龙.pdf

    基于优化EKF的PMSM无位置传感器矢量控制研究_崔鹏龙.pdf

    旧物置换网站(基于springboot,mysql,java).zip

    旧物置换网站的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的springboot框架。中间件服务器是Tomcat服务器,使用Mysql数据库和Eclipse开发 环境。该旧物置换网站包括管理员、用户、卖家。其主要功能包括管理员:首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等,卖家后台:首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理。前台首页;首页、旧物信息、网站公告、个人中心、后台管理等,用户后台:首页、个人中心、旧物信息管理、置换交易管理、用户可根据关键字进行信息的查找自己心仪的信息等。 (1)用户功能需求 用户进入前台系统可以查看首页、旧物信息、网站公告、个人中心、后台管理等操作。前台首页用例如图3-1所示。 (2)管理员功能需求 管理员登陆后,主要功能模块包括首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等功能。 关键词:旧物置换网站,Mysql数据库,Java技术 springboot框架

    上位机开发,对桥梁、环境等传感器传输的数据进行采集并入库,以便用于系统平台对数据进行处理分析(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    质子号.zip

    航天模拟器文件、蓝图、代码

    两级式单相光伏并网仿真研究:MATLAB 2021a版本下的DC-DC变换与桥式逆变技术实现功率跟踪与并网效果优化,基于Matlab 2021a的两级式单相光伏并网仿真研究:实现最大功率跟踪与稳定的直

    两级式单相光伏并网仿真研究:MATLAB 2021a版本下的DC-DC变换与桥式逆变技术实现功率跟踪与并网效果优化,基于Matlab 2021a的两级式单相光伏并网仿真研究:实现最大功率跟踪与稳定的直流母线电压,两级式单相光伏并网仿真(注意版本matlab 2021a) 前级采用DC-DC变电路,通过MPPT控制DC-DC电路的pwm波来实现最大功率跟踪,mppt采用扰动观察法,后级采用桥式逆变,用spwm波调制。 采用双闭环控制,实现直流母线电压的稳定和单位功率因数。 并网效果良好,thd满足并网要求,附带仿真说明文件 ,两级式单相光伏并网仿真; MATLAB 2021a; DC-DC变换电路; MPPT控制; 扰动观察法; 桥式逆变; SPWM波调制; 双闭环控制; 直流母线电压稳定; 单位功率因数; 并网效果; THD。,MATLAB 2021a双闭环控制两级式单相光伏并网仿真研究

    光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略,助力光伏发电学习 ,光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略学习指南,光伏mppt仿真:通过调

    光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略,助力光伏发电学习。,光伏MPPT仿真研究:光照强度和温度对太阳能电池输出特性的影响及调整策略学习指南,光伏mppt仿真:通过调整太阳光照, 温度等因素 , 光照强度和温度对太阳能电池输出特性的影响。 可用于学习光伏发电 ,光伏MPPT仿真;太阳光照调整;温度影响;光照强度;太阳能电池输出特性。,光伏MPPT仿真:光照与温度对太阳能电池输出特性的影响研究

    java项目,毕业设计(包含源代码)-springboot学生综合成绩测评系统

    随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理,交易等,而且过程简单、快捷。同样的,在人们的工作生活中,也就需要互联网技术来方便人们的日常工作生活,实现工作办公的自动化处理,实现信息化,无纸化办公。 本课题在充分研究了在Springboot框架基础上,采用B/S模式,以Java为开发语言,MyEclipse为开发工具,MySQL为数据管理平台,实现的内容主要包括首页,个人中心,综合管理等功能。

    陨石-4天际星(SFS-AEF).zip

    航天模拟器文件、蓝图、代码

    西门子Smart PLC四轴搬运取料机案例程序:从新手到项目的跃升之路,西门子Smart PLC四轴搬运取料机运动控制案例程序-PLC通信与伺服电机自动化控制解决方案,西门子200smart运动控制

    西门子Smart PLC四轴搬运取料机案例程序:从新手到项目的跃升之路,西门子Smart PLC四轴搬运取料机运动控制案例程序——PLC通信与伺服电机自动化控制解决方案,西门子200smart运动控制四轴搬运取料机案例程序 该程序为两台smart plc通过通讯控制四轴伺服电机的搬运取料机案例工程案例程序。 包含200smar_PLC程序+项目电气接线图(PDF图纸)+程序流程说明+触摸屏程序(步科) 程序包括伺服电机的启动,停止,原点定位,回归原点,位置控制以及方向控制。 包括了所有控制伺服电机的指令,里面有指令的用法的详细解释和程序说明。 拿来就能用的案例程序,结合程序案例中学习,就会轻松快速的掌握。 让你从新手直接能做项目。 动作流程: 客户上好料盒,M1轴伺服跑到第一片料的位置,气缸将料推出到上位置, M2轴在上料位置取件后移动到直线电机的,加工位置,m2轴上通过有上料下料的气缸, 用真空吸住料后m2轴移动到一个二维平台的加工位置,把带加工的料放到加工位置后, 激光器开始加工,加工完成后,通过M2轴把料取下,移动到成品放料位置,放料后, M3轴将成品料推送到M4

    小蜻蜓三号探测器.zip

    航天模拟器文件、蓝图、代码

    基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略研究与求解分析,基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略及经济性研究,考虑阶梯式碳交易机制与电制氢的综合能源系统

    基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略研究与求解分析,基于双碳背景下阶梯式碳交易机制与电制氢的综合能源系统热电优化策略及经济性研究,考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化 “双碳”背景下,为提高能源利用率,优化设备的运行灵活性,进一步降低综合能源系统(IES)的碳排放水平,提出一种IES低碳经济运行策略。 首先考虑IES参与到碳交易市场,引入阶梯式碳交易机制引导IES控制碳排放;接着细化电转气(P2G)的两阶段运行过程,引入电解槽、甲烷反应器、氢燃料电池(HFC)替传统的P2G,研究氢能的多方面效益;最后提出热电比可调的热电联产、HFC运行策略,进一步提高IES的低碳性与经济性。 基于此,构建以购能成本、碳排放成本、弃风成本最小的低碳经济运行目标,将原问题转化为混合整数线性问题,运用CPLEX商业求解器进行求解,通过设置多个运行情景,对比验证了所提策略的有效性。 关键词:氢能;阶梯式碳交易机制;热电比可调;综合能源系统;低碳经济 ,关键词:阶梯式碳交易机制;综合能源系统(IES);热电优化;设备运行灵活性;碳排放水平;电转气(P2G);电解槽;氢

    MMC分布式储能系统:实现恒功率与恒电压控制的无缝切换技术,MMC分布式储能系统实现恒功率与恒电压控制的无缝切换技术,mmc分布式储能 恒功率控制 恒电压控制 无缝切 ,核心关键词:MMC分布式储能

    MMC分布式储能系统:实现恒功率与恒电压控制的无缝切换技术,MMC分布式储能系统实现恒功率与恒电压控制的无缝切换技术,mmc分布式储能 恒功率控制 恒电压控制 无缝切 ,核心关键词:MMC分布式储能; 恒功率控制; 恒电压控制; 无缝切换。,MMC分布式储能系统:恒功率与恒电压控制的无缝切换技术

    多频多快拍稀疏贝叶斯学习目标方位序贯估计_牛海强.pdf

    多频多快拍稀疏贝叶斯学习目标方位序贯估计_牛海强.pdf

    交错并联Boost PFC仿真电路模型:双闭环控制方式下的输出电压与电感电流优化控制,优良波形及Simulink仿真实现,交错并联Boost PFC仿真电路模型:双闭环控制方式下的电压外环与电感电流内

    交错并联Boost PFC仿真电路模型:双闭环控制方式下的输出电压与电感电流优化控制,优良波形及Simulink仿真实现,交错并联Boost PFC仿真电路模型:双闭环控制方式下的电压外环与电感电流内环优化,优质波形表现于Simulink仿真中,交错并联Boost PFC仿真电路模型 采用输出电压外环,电感电流内环的双闭环控制方式 交流侧输入电流畸变小,波形良好,如效果图所示 simulink仿真 matlab simulink仿真模型 无报告哈 ,核心关键词:交错并联Boost PFC仿真电路模型;双闭环控制方式;输出电压外环;电感电流内环;交流侧输入电流畸变小;波形良好;Simulink仿真;Matlab Simulink仿真模型。,基于Simulink仿真的交错并联Boost PFC双闭环控制模型优化研究

Global site tag (gtag.js) - Google Analytics