Egret社区

给新手学习PureMvc的Demo

2018-3-7 13:34
145689
本帖最后由 ywx620 于 2018-5-22 15:10 编辑

有些新手可能不知道如何入手pureMvc,所以写了个demo教大家
这个demo是个计算器,每个操作都是发送一条命令出去。
然后在命令集中收集数据处理好之后再次发送出来,
显示界面会接收来自处理好之后的数据再显示出来。
手机扫描可以看到demo
JSQ.png

代码说明
主类入口
[AppleScript] 纯文本查看 复制代码
class MainMvc extends moon.BasicView{
    protected render():void
    {        var facade=puremvc.Facade.getInstance("calculator");
        var moduleView:ModuleView=new ModuleView;  
       var moduleMediator:ModuleMediator=new ModuleMediator(ModuleMediator.NAME,moduleView);
        this.addChild(moduleView);
        //注册主视窗控制
        facade.registerMediator(moduleMediator);

        //注册命令
        facade.registerCommand(MVCConst.CMD_START,StartCommand);
        //发收执行开始命令
        facade.sendNotification(MVCConst.CMD_START);
    }
}



[Actionscript3] 纯文本查看 复制代码
/**基础命令类 */
class BasicCommand extends puremvc.SimpleCommand
{
    protected num1:number;
    protected num2:number;
    protected value:number;
    public execute(notification: puremvc.INotification): void
    {
        this.num1=notification.getBody().num1;
        this.num2=notification.getBody().num2;
        this.calculate();
        this.facade().sendNotification(MVCConst.CMD_SOUND);
    }
    /**计算 */
    protected calculate():void
    {

    }
    /**发布 */
    protected release():void
    {
        this.facade().sendNotification(MVCConst.RESULT_RELEASE,this.value);
    }
}
/**运算-加*/
class PlusCommand extends BasicCommand
{
    protected calculate():void
    {
        this.value=this.num1+this.num2;
        this.release();
    }
}
/**运算-减*/
class SubtractCommand extends BasicCommand
{
    protected calculate():void
    {
        this.value=this.num1-this.num2;
        this.release();
    }
}
/**运算-乘*/
class MultiplyCommand extends BasicCommand
{
    protected calculate():void
    {
        this.value=this.num1*this.num2;
        this.release();
    }
}
/**运算-除*/
class DivideCommand extends BasicCommand
{
    protected calculate():void
    {
        this.value=this.num1/this.num2;
        this.release();
    }
}
//------------------
/**开始命令 */
class StartCommand extends puremvc.MacroCommand
{
    public initializeMacroCommand(): void {
        this.addSubCommand(InitCommand);
    }
}
/**初始化命令 */
class InitCommand extends puremvc.SimpleCommand
{
    public execute(notification: puremvc.INotification): void
    {
        this.facade().registerCommand(MVCConst.CMD_TRANSPOND,TranspondCommand);
        this.facade().registerCommand(MVCConst.CMD_SOUND,SoundCommand);

        this.facade().registerCommand(MVCConst.CMD_CALCULATE_PLUS,PlusCommand);
        this.facade().registerCommand(MVCConst.CMD_CALCULATE_SUBTRACT,SubtractCommand);
        this.facade().registerCommand(MVCConst.CMD_CALCULATE_MULTIPLY,MultiplyCommand);
        this.facade().registerCommand(MVCConst.CMD_CALCULATE_DIVIDE,DivideCommand);
    }
}
/**数据转发,用来转发数字与计算符号 */
class TranspondCommand extends puremvc.SimpleCommand
{
    public execute(notification: puremvc.INotification): void
    {
        var data:any=notification.getBody();
        this.facade().sendNotification(MVCConst.DATA_TRANSPOND,data);
        this.facade().sendNotification(MVCConst.CMD_SOUND);
    }
}
/**播放声音命令 */
class SoundCommand extends puremvc.SimpleCommand
{
    public execute(notification: puremvc.INotification): void
    {
       SoundControl.getIns().play("keyDown_mp3");
    }
}

游客,如果您要查看本帖隐藏内容请回复









分享到 :
6 人收藏

89 个回复

倒序浏览
Qin7  圆转纯熟 | 2018-3-7 14:09:39
Qin7  圆转纯熟 | 2018-3-7 14:09:43
xjn9854262  登堂入室 | 2018-3-7 14:50:29
学习下,
fred664006254  登堂入室 | 2018-3-7 15:18:25
好东西 谢谢分析
fred664006254  登堂入室 | 2018-3-7 15:18:40
好东西 谢谢分析
mysang  炉火纯青 | 2018-3-7 15:32:28
下载看看学习了
jj229937432  圆转纯熟 | 2018-3-7 15:34:44
kankan
破桎梏但求本心  圆转纯熟 | 2018-3-7 18:49:09
下载学习
yanleiyu  登堂入室 | 2018-3-7 19:43:35
学习下!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部