createjs初学-创建一个button

本文介绍了如何在CreateJS中使用ButtonHelper、Sprite和SpriteSheet创建一个交互式按钮。通过定义images、frames和animations,设置不同状态的显示帧,并通过ButtonHelper将精灵添加到舞台上,实现按钮的鼠标交互效果。别忘了启用over状态以完整实现按钮功能。

在createjs中创建button是用ButtonHelper,实际上还要用到Sprite和SpriteSheet这两个类。下面是一个最简单的button。

var data={
        images:["out.png","down.png"],
        frames:[
            [0,0,135,43,0],
            [0,0,135,43,1]
        ],
        animations:{
            out:0,
            down:1
        }
 }
 var sheet=new createjs.SpriteSheet(data);
 var sprite=new createjs.Sprite(sheet);
 var helper=new createjs.ButtonHelper(sprite,"out","out","down");
 stage.addChild(sprite);

一共有四部分,data为spriteSheet提供数据,由images,frames和animations组成。

images是一组图片,可以是html图片,也可以是图片的uri

images: [image1, "path/to/image2.png"],

frames用来定义每一帧,有两种数据格式
1.所有帧的大小都是相同的,根据宽高,帧的索引从左到右,从上向下排列

frames: {width:64, height:64, count:20, regX: 32, regY:64, spacing:0, margin:0}

2.图片是不同的尺寸,前四个参数分别表示x,y,width,height,第五个imageIndex表示上面images数组中的索引,默认是0。最后连个参数表示帧的注册位置。

frames: [
    // x, y, width, height, imageIndex*, regX*, regY*
    [64, 0, 96, 64],
    [0, 0, 64, 64, 1, 32, 32]
    // etc.
]

animations指定帧动画和动画的名字,有3种格式,具体见API
在button的例子很简单,指定了一个”out”,就是显示第一帧,一个”down”就是显示第二帧。

animations:{
            out:0,
            down:1
        }

然后根据data创建了一个spriteSheet
再用spriteSheet创建了一个sprite

创建ButtonHelper的时候把sprite传了进去,ButtonHelper并不是一个显示对象,最后需要把sprite添加到舞台上,然而Buttonhelper的引用应该保持,以免被垃圾回收。

ButtonHelper ( target  [outLabel="out"]  [overLabel="over"]  [downLabel="down"]  [play=false] [hitArea]  [hitLabel] )

构造函数中第一个参数是sprite,第二个指定out状态显示的动画的名字,上面用的事”out”,默认也是”out”,也可以用其他的值,只要和data里面的名字对应上。
后两个参数也是一样。
需要注意的是,默认状态下并不启用over状态,除非你通过enableMouseOver来设定。

### FairyGUI与CreateJS集成进行前端UI开发 #### 创建项目结构 为了实现FairyGUI与CreateJS的集成,需先设置好基础环境。确保已安装Egret Wing或其他支持CreateJS项目的IDE。 #### 导入资源包 在项目中导入FairyGUI扩展库以及所需的CreateJS库文件[^1]。这一步骤通常通过配置构建工具完成,如Webpack或Grunt。 #### 初始化舞台 创建并初始化一个基于HTML5 Canvas的舞台实例,作为所有视觉元素的基础容器: ```javascript // Initialize stage with CreateJS var canvas = document.getElementById('gameCanvas'); var stage = new createjs.Stage(canvas); createjs.Ticker.setFPS(60); // Set frame rate to 60 FPS createjs.Ticker.addEventListener("tick", handleTick); function handleTick(event) { stage.update(); } ``` #### 加载FairyGUI场景 利用FairyGUI提供的API加载打包好的界面资源,并将其渲染到舞台上: ```javascript fgui.UIPackage.addPackage("res/ui/StartScene"); // Add UI package from resources path let startView = fgui.UIObjectFactory.newObject(fgui.UIPackage.getItemByURL("ui://StartScene/startBtn")); stage.addChild(startView.displayObject); // Convert FGUI component into display object compatible with CreateJS ``` #### 添加交互逻辑 对于`startBtn`这样的节点,在其上附加事件监听器来处理用户的输入行为,比如点击效果和启动新游戏流程等操作: ```javascript const buttonComponent = startView.getChild("n0").asCom; // Assuming 'n0' is the ID of your Button node within StartScene buttonComponent.onClick(addEventListener, function () { console.log("Game started!"); // Implement game initialization code here... }); ``` 以上代码片段展示了如何将FairyGUI中的按钮转换为可被CreateJS识别的对象,并为其绑定简单的点击回调函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值