HTML5 Canvas开发框架:CasualJS Framework
flashlizi
2011-02-21
CasualJS Framework是根据ActionScript3?.0的架构开发的一套适用于HTML5 Canvas的面向对象的开发框架。虽然Canvas提供了强大的绘图功能,但满足不了高级开发的需要。利用CasualJS的显示对象架构及渲染机制,你可以轻松的在Canvas中操控各种位图、图形、影片剪辑等显示对象。
示例: * DisplayObject (显示对象) * MovieClip (影片剪辑及帧动画) * Graphics (绘制图形) * Button (按钮) * DisplayObject Collision (显示对象碰撞检测) 游戏Demo: * Runner (画面超炫的塔防游戏) * Gomoku (五子棋) 在线API文档:http://www.html5idea.com/casualjs/doc/index.html 项目主页:http://code.google.com/p/casualjs/ |
|
scottcgi
2011-02-22
源码大概看了一遍,很不多错的说。
感觉很是有actoinscript的风格 |
|
joy2everyone
2011-02-24
谢谢LZ分享,示例、文档方面都挺全的,准备试一下CasualJS
|
|
joy2everyone
2011-02-24
为什么下载的zip包中的example/Button.html 直接通过浏览器打开该页面无法成功触发事件
//register mouse event handlers playBtn.onMouseMove = playBtn.onMouseOver = playBtn.onMouseOut = playBtn.onMouseDown = playBtn.onMouseUp = mouseHandler; stopBtn.onMouseMove = stopBtn.onMouseOver = stopBtn.onMouseOut = stopBtn.onMouseDown = stopBtn.onMouseUp = mouseHandler; 将其部署到web server,通过URL访问Button.html才能触发btn指定的事件? 这个不属于前台的事件监听?也需要后端server? 相关源码我还没有学习,请帮忙看下这个问题? |
|
janrn
2011-02-24
太厉害了,不知道效率怎样
|
|
flashlizi
2011-02-24
这是按钮Button是通过监测鼠标指针下的图片数据实现的,核心方法是context.getImageData(),而这个方法在Firefox这样的浏览器中有个限制,就是在使用本地图片的时候上面方法会报错。而如果部署到web上后就好了。
当然也可以修改firefox的配置,输入about:config,搜索strict_origin_policy字段,修改为false,就ok了。 google chrome也有这个问题。safari则没有这个问题。 joy2everyone 写道 为什么下载的zip包中的example/Button.html 直接通过浏览器打开该页面无法成功触发事件
//register mouse event handlers playBtn.onMouseMove = playBtn.onMouseOver = playBtn.onMouseOut = playBtn.onMouseDown = playBtn.onMouseUp = mouseHandler; stopBtn.onMouseMove = stopBtn.onMouseOver = stopBtn.onMouseOut = stopBtn.onMouseDown = stopBtn.onMouseUp = mouseHandler; 将其部署到web server,通过URL访问Button.html才能触发btn指定的事件? 这个不属于前台的事件监听?也需要后端server? 相关源码我还没有学习,请帮忙看下这个问题? |
|
mfkvfn
2011-02-24
第一个游戏在FireFox3.6下140多关时就很卡。
第二个游戏人工智能太简单,两下就把电脑赢了。 画面什么的还不错。那个js框架很好。 |
|
joy2everyone
2011-02-24
function start(){ //create stage stage = new Stage(context); stage.setFrameRate(20); stage.traceMouseTarget = true; //a shape width a rectangle and a circle var shape = new Shape(); shape.name = "testshape"; shape.graphics.lineStyle(1, "red"); var s = shape.graphics.drawRect(1, 1, 100, 100); shape.x = 40; shape.y = 60; shape.addEventListener(StageEvent.MOUSE_DOWN, hello); //stage.addEventListener(StageEvent.MOUSE_DOWN, hello); stage.addChild(shape); } function hello(e){ alert("hello"); }
shape.graphics.lineStyle(1, "red");
shape.graphics.lineStyle(7, "red");
|
|
flashlizi
2011-02-24
joy2everyone 写道
比如:
shape.mouseEnabled = true; //shape默认是不接受鼠标事件的,因此要打开这个 shape.onMouseEvent = function(e) { if(e.type == "onmousedown") { //鼠标按下处理操作。。。 } }
更多的可以借鉴Button中的实现。
2. 这可以说一个bug。因为设置线条粗细后,在画形状的时候,没有计算线条的宽度。 如果没有正确设置画形状的坐标的话,这样会导致左边、上边的线条显示不完整。
比如:
shape.graphics.lineStyle(5, "#ffffff"); //设置线条宽度为5 shape.graphics.drawRect(5, 5, 100, 100) //在drawRect时的x,y不能小于5,否则线条会显示不完整。
这个会在后续版本中修正。 |
|
joy2everyone
2011-02-24
flashlizi 写道
joy2everyone 写道
......
哈哈,再次谢谢分享,我明白了 :)
希望这个project可以不断完善,更多的参考例子、以及更详细的文档说明,LZ加油!
|