本文目录一览:
- 1、javascript在追加元素节点时怎么换行?
- 2、javascript实现可编辑样式的文本
- 3、如何使用Createjs来编写HTML5游戏完成一个简单的打飞机游戏
- 4、js动态的在页面上增加或删除三个文本框并换行
- 5、如何使用Createjs来编写HTML5游戏TweenJS和Tick动画
javascript在追加元素节点时怎么换行?
做了个页面,看下面的粗体部分
html xmlns=” “
head
title/title
/head
body
script type=”text/javascript”
var k=1;
function aa()
{
k=k+1;
var fnode=document.body.lastChild;
//创建元素节点
var mynode=document.createElement(“input”);
//给元素添加属性
mynode.id=k;//这里应该用k吧,而不是”k”
mynode.type = “text”;
var br = document.createElement(“br”);
//把创建的节点添加到指定节点中
fnode.appendChild(mynode);
fnode.appendChild(br);//添加一个换行
}
/script input type=”button” onclick=”aa()” value=”sfsf” /
div id=”sdfsdf”/div
/body
/html
javascript实现可编辑样式的文本
你要的是所见即所得HTML编辑器,简单来说需要几个基本步骤:
1,需要一个可以编辑同时又可显效果的编辑框。textarea不行,它只能用来输入纯文本,不能显示颜色、斜体之类的文字样式,就像记事本。
你可以使用iframe来实现,修改iframe的designMode属性使其可以被编辑。
iframe id=”myEditer” width=”100%” height=”150px”/iframe
scriptmyEditer.document.designMode = ‘on’;/script
这样你就可以在这个iframe区域里写字了。
2,选中要添加样式的文字。通常我们用WORD编辑一段文字的样式时,一般是先打字,再编辑样式。所以你需要一个选中要处理文本的方法。JS的selection.createRange()可以选中文本,返回一个对象,你可以通过访问该对象的text属性得到被选中的文本。
iframe id=”myEditer” width=”100%” height=”150px”/iframe
input type=”button” value=”加粗” onclick=”Bold()”
script
myEditer.document.designMode = ‘on’;
function Bold(){
var sel = myEditer.document.selection.createRange();
alert(sel.text);
}
/script
3,改变被选中文本的样式。selection.createRange()选中文本,返回一个对象,该对象有一个方法execCommand(),可以用来改变被选中文本的样式。
iframe id=”myEditer” width=”100%” height=”150px”/iframe
input type=”button” value=”加粗” onclick=”Bold()”
script
myEditer.document.designMode = ‘on’;
function Bold(){
var sel = myEditer.document.selection.createRange();
//alert(sel.text);
sel.execCommand(“Bold”)
}
/script
execCommand()的常用用法:
字体–宋体、黑体、楷体等
execCommand(“fontname”,””,字体)
字号–字号大小
execCommand(“fontsize”,””,字号)
加重
execCommand(“Bold”)
斜体
execCommand(“Italic”)
下划线
execCommand(“Underline”)
删除线
execCommand(“StrikeThrough”)
居左
execCommand(“JustifyLeft”)
居右
execCommand(“JustifyRight”)
居中
execCommand(“JustifyCenter”)
剪切
execCommand(“Cut”)
拷贝
execCommand(“Copy”)
粘贴
execCommand(“Paste”)
取消操作–IE5.0以后可以无限取消
execCommand(“Undo”)
重复操作
execCommand(“Redo”)
把上面的每个用法用按钮来实现,你就已经完成了一个简单的可视文本编辑器。
如何使用Createjs来编写HTML5游戏完成一个简单的打飞机游戏
CreateJS包含4个部分,EaselJS、TweenJS、PreloadJS、SoundJS,其中最主要的部分EaselJS包含了开发Html5游戏的所有功能,仅仅使用EaselJS几乎可以完成所有的开发工作,其余三项可以看作EaselJS的辅助工具。比如响应tick事件然后改变元素坐标就可以实现动画功能,而使用TweenJS来创建补间动画,则可以省去你很多代码,简化了操作。一个简单的tick动画看起来是这样的:pre t=”code” l=”js”var stage, circle;
function init(){
stage = new createjs.Stage(document.getElementById(‘game’));
createjs.Ticker.addEventListener(“tick”, handleTick);
createjs.Ticker.setFPS(60);
circle = new createjs.Shape();
circle.graphics.f(“red”).dc(0,0,50);
circle.x = 0;
circle.y = 100;
stage.addChild(circle);
circle.addEventListener(“click”, function(event){
createjs.Ticker.setPaused(!createjs.Ticker.getPaused());
});
}
function handleTick(event){
if(!event.paused){
circle.x +=5;
if(circle.x 1000){
circle.x = 0;
}
}
stage.update();
}
js动态的在页面上增加或删除三个文本框并换行
html
head
titlejs动态的在页面上增加或删除一个文本框/title
script type=”text/javascript”
!–
var textNumber = 1;
function addTextBox(form, afterElement) {
// Increment the textbox number
textNumber++;
// Create the label
var p = document.createElement(“p”);
p.id=”txt”+textNumber;
var label = document.createElement(“label”);
// Create the textbox
var textField = document.createElement(“input”);
textField.setAttribute(“type”,”text”);
textField.setAttribute(“name”,”biaozhundaan”+textNumber);
textField.setAttribute(“id”,”biaozhundaan”+textNumber);
// Add the label’s text
label.appendChild(document.createTextNode(“第”+textNumber+”空: “));
// Put the textbox inside(里面)的//把文本框放进去
label.appendChild(textField);
// Add it all to the form fengshu
p.appendChild(label);
var label = document.createElement(“label”);
// Create the textbox
var textField = document.createElement(“input”);
textField.setAttribute(“type”,”text”);
textField.setAttribute(“name”,”pingfengA”+textNumber);
textField.setAttribute(“id”,”pingfengA”+textNumber);
// Add the label’s text
label.appendChild(document.createTextNode(“评分词”+textNumber+”: “));
// Put the textbox inside(里面)的//把文本框放进去
label.appendChild(textField);
// Add it all to the form
p.appendChild(label);
var label = document.createElement(“label”);
// Create the textbox
var textField = document.createElement(“input”);
textField.setAttribute(“type”,”text”);
textField.setAttribute(“name”,”fengshu”+textNumber);
textField.setAttribute(“id”,”fengshu”+textNumber);
// Add the label’s text
label.appendChild(document.createTextNode(“分数”+textNumber+”: “));
// Put the textbox inside(里面)的//把文本框放进去
label.appendChild(textField);
// Add it all to the form
//
p.appendChild(label);
form.insertBefore(p,afterElement);
return false;
}
function removeTextBox(form) {
if (textNumber 1) { // If there’s more than one text box
// Remove the last one added
form.removeChild(document.getElementById(“txt”+textNumber));
textNumber–;
}
}
//–
/script
/head
body
form id=”myForm” method=”get” action=”./” /
labelText Box #1a: input type=”text” name=”txt1″ id=”txt1″ //label
p
input type=”button” value=”Add Textbox” onClick=”addTextBox(this.form,this.parentNode); ” /
input type=”button” value=”Remove Textbox” onClick=”removeTextBox(this.form)” /
/p
pinput type=”Submit” value=”Submit” //p
/form
/body
/html
如何使用Createjs来编写HTML5游戏TweenJS和Tick动画
createJs的由来,基础什么的就不说了,就直接说createJs的用法吧。
首先到createJs官网下载,createJs分成easelJs(图形动画)、preloadJs(文件加载)、soundJs(音频控制)以及tweenJs(补间动画)四部分,大家下载的时候,建议下载两个文件,一个是压缩版文件,用于项目中的引用,再下载个源码文件,用于查看用法、API、demo等。因为楼主目前只用了easelJs和preloadJs,所以暂时就只说这两个,其实就这两个已经非常够用了。
接下来开始分析代码:
首先引入js文件
script src=”easeljs-0.7.1.min.js”/script
script src=”preloadjs-0.4.1.min.js”/script
然后进行舞台初始化操作:
function init(){
stage = new createjs.Stage(“cas”);
C_W = stage.canvas.width;
C_H = stage.canvas.height;
var manifest = [
{src:”image/man.png” , id:”man”},
{src:”image/ground.png” , id:”ground”},
{src:”image/bg.png” , id:”bg”},
{src:”image/high.jpg” , id:”high”},
{src:”image/coins.png” , id:”coin”}
]
loader = new createjs.LoadQueue(false);
loader.addEventListener(“complete” , handleComplete);
loader.loadManifest(manifest);
drawLoading();
}
上面就用到了preloadJs中的方法,实例化一个loader,把需要加载的图片文件放在manifest里面,进行加载,加载完成后调用回调handleCompelete函数:
function handleComplete(){ //当图片素材load完后执行该方法
var manImage = loader.getResult(“man”),
lowground = loader.getResult(“ground”),
highground = loader.getResult(“high”),
bgImage = loader.getResult(“bg”),
coins = loader.getResult(“coin”);
sky = new createjs.Shape();
sky.graphics.bf(bgImage).drawRect(0,0,C_W,C_H);
sky.setTransform(0, 0, 1 , C_H/bgImage.height);
stage.addChild(sky);
man = createMan(200,326,manImage);
//该框为判定角色的判定区域
kuang = new createjs.Shape();
kuang.graphics.beginStroke(“rgba(255,0,0,0.5)”).drawRect(0 , 0 , man.size().w , man.picsize().h*1.5);
// stage.addChild(kuang);
mapHandle(lowground , highground , coins);
createjs.Ticker.timingMode = createjs.Ticker.RAF;//设置循环方法,可以是requestAnimationFrame或者是setTimeout
createjs.Ticker.setFPS(30);//舞台帧率控制
createjs.Ticker.addEventListener(“tick”, tick);//绑定舞台每一帧的逻辑发生函数
window.addEventListener(“keydown” , function(event){
event = event||window.event;
if(event.keyCode===32man.jumpNumman.jumpMax){
man.jump();
}
})
}
获得加载完成后端的图片数据就直接用loader.getResult就可以获取了,跑酷游戏需要一个背景,所以,我们实例化一个sky,然后进行位图绘制,bf方法是beginBitmapFill的缩写,该方法就是开始绘制位图,后面的drawRect是位图的绘制区域,区域当然是整个画布啦,所以就是drawRect(0,0,C_W,C_H)。实例化出来sky后就直接添加到舞台stage里面就行了。接下来是实例化一个角色,createMan方法后面有说,是自己封装的。
然后进行舞台循环设置,上面有注释了,就不说了。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/194210.html