createjs的特點,js中create

本文目錄一覽:

有哪些值得推薦的類似 jQuery UI 或者 Bootstrap 這樣的 UI 框架

1)Twitter Bootstrap

Bootstrap是最流行的HTML5框架之一。這是一款用於Web開發的時尚、直觀、強大的前端框架。它有着用於開發響應式網站的所有組件,如12列響應式網格、定製jQuery插件、bootstrap編輯器等等。

2)HTML5 Boilerplate

HTML5 Boilerplate能幫助我們構建快速、可適應的Web應用和網站。它提供了優秀的網站性能和獨立的服務器維護配置。它可以幫助你開展新的項目。

3)Foundation

Foundation是當今世界最先進的響應式前端框架。我們可以通過構建面向小型設備的網站來使用此HTML5架構。它也可用於靈活和響應式的網站

4)UIKit

UIKit是一款輕量級,模塊化的前端框架,可快速構建強大的web前端界面。UIKit提供了全面的HTML、CSS和JS組件,使用和定製都很方便。

5)HTML5 KickStart

HTML5 KickStart有着精簡的HTML5、CSS和JS的構建模塊,支持快速製作網站。它小小的程序包中囊括了響應式網格布局、觸摸功能的幻燈片等等

6)Gumby

Gumby2是一個非常了不起的響應式CSS框架。Gumby框架也允許定製:這和下載、調整、部署一樣簡單!Gumby2建立在Sass的基礎上。

7)Skeleton

Skeleton簡單又友好,可用於開發HTML5網站和移動應用。它有一個CSS文件的小集合,能讓你快速開發出任意大小的網站。

8)Groundwork

Groundwork是一款響應HTML5、CSS和JavaScript的框架,擁有如網格系統,高度可定製化,響應式文本等等功能。

9)Base

Base是一款基於語義的、輕量級的和可擴展的框架,可用於快速創建響應式站點。

10)Montage

Montage是一款支持構建現代化Web應用程序的HTML5框架。它能協助你開發出可擴展和可維護的HTML5應用。它擁有如可重用的組件和HTML模板,聲明組件模型,聲明數據綁定等功能。

11)Layers CSS

Layers CSS是輕量級的CSS框架,它不強調任何設計但是可以用來處理主要結構。它擁有流動網格和一些簡單的類,以支持響應式布局。

12)52Framework

52Framework是一款旨在提供用簡單方法通過HTML5和CSS3構建響應式網頁,同時支持所有現代瀏覽器的HTML5框架。它裏面有多種超棒的組件,如HTML5視頻播放器,圓角,HTML5畫布例子,HTML5表單驗證等等等等。

13)CreateJS

CreateJS是一系列模塊化的庫和工具,經由HTML5的Web技術生成豐富多彩的交互式內容。它有HTML5音頻,對象管理,漸變等功能。CreateJS套件包括:EaselJS,TweenJS,SoundJS,PreloadJS和Zoe。

14)Kube

Kube Framework只有一個CSS文件。它的美麗就源於它的簡單。對開發人員擁有最大的靈活性和定製,並提供LESS文件。

15)Less Framework

Less Framework是一個現代化的前端框架,用於構建響應式的設計。它也是一款支持設計自適應網站的CSS網格系統。它含有通通基於單網格的4款布局和3套預設排版

16)SkelJS

skelJS是一款輕量級的前端框架,用於構建響應式網站和app。

具體的官方網址請參考以下博客內容:

js創建數組對象的過程有幾種?特點是什麼?

js編程中創建對象的幾種方式,如原始方法、工廠方法等創建對象。

1、原始方法

複製代碼代碼示例:

script type=”text/javascript”

var obj = new Object();

obj.name = “Koji”; //為對象添加屬性

obj.age = 21;

obj.showName = function(){ //為對象添加方法

alert(this.name);

}

obj.showAge = function(){

alert(this.age);

}

obj.showName(); //Koji

obj.showAge(); //21

/script

上面的方式通過new關鍵字生成一個對象,然後根據JS是動態語言的特性添加屬性和方法,構造一個對象。其中的this是表示調用該方法的對象。

這種方式的問題是如果需要多次創建對象,則需要重複代碼多次,不利於代碼的復用。

2、工廠方法 :

複製代碼代碼示例:

script type=”text/javascript”

function createObj(){

var obj = new Object(); //創建對象

obj.name = “Koji”;

obj.age = 21;

obj.showName = function(){

alert(this.name);

}

obj.showAge = function(){

alert(this.age);

}

return obj; //返回對象

}

var obj1 = createObj();

var obj2 = createObj();

obj1.showName(); //Koji

obj2.showAge(); //21

/script

這種方式提高了代碼重用率,還可以改變工廠方法,傳入參數賦值。

複製代碼代碼示例:

script type=”text/javascript”

function createObj(name, age){ //構造對象時可以傳入初始化參數

var obj = new Object(); //創建對象

obj.name = name;

obj.age = age;

obj.showName = function(){

alert(this.name);

}

obj.showAge = function(){

alert(this.age);

}

return obj; //返回對象

}

var obj1 = createObj(“Koji”, 22);

var obj2 = createObj(“Luo”, 21);

obj1.showName(); //Koji

obj1.showAge(); //22

obj2.showName(); //Luo

obj2.showAge(); //21

/script

上面的方式雖然可以提高代碼的復用率,但和面向對象中類的概念相比有一個很大的缺陷。面向對象強調對象的屬性私有,而對象的方法是共享的。而上面的工廠方法創建對象的時候要為每個對象創建各自私有的方法。同時由於為每個對象都創建邏輯相同的方法,浪費內存。

改進如下:

複製代碼代碼示例:

script type=”text/javascript”

function createObj(name, age){

var obj = new Object(); //創建對象

obj.name = name;

obj.age = age;

obj.showName = showName;

obj.showAge = showAge;

return obj; //返回對象

}

function showName(){ //函數也是一個對象

alert(this.name);

}

function showAge(){

alert(this.age);

}

var obj1 = createObj(“Koji”, 22);

var obj2 = createObj(“Luo”, 21);

obj1.showName(); //Koji

obj1.showAge(); //22

obj2.showName(); //Luo

obj2.showAge(); //21

/script

上面通過定義連個函數對象,解決了不同對象持有函數對象的私有問題。現在所有對象的方法都持有上面兩個函數的引用。但這麼一來的話,對象的函數又和對象成了相互獨立,不相干的了。這和面向對象中特定方法屬於特定類的思想不符合。

3、構造函數方式

複製代碼代碼示例:

script type=”text/javascript”

//定義一個構造函數,用來生成對應的對象,可以類比Java中的構造函數

function Person(name, age){

//當調用new Person的時候,在執行第一行代碼前,先生成一個Person對象,並將對象在內存中的

//索引賦值給this關鍵字,此時可以通過this關鍵字操作新生成的對象,如下面的添加屬性或方法

this.name = name; //this關鍵字不能少。為當前對象,即this關鍵字引用的對象的name屬性賦值

//,實際相當於為當前對象添加name屬性後,再為其name屬性賦值。

this.age = age;

this.showName = function(){ //為當前對象添加方法

alert(this.name);

}

this.showAge = function(){

alert(this.age);

}

//將當前對象返回給賦值符號左邊的變量(不必明確使用return)

}

var obj1 = new Person(“Koji”, 22); //生成一個Person對象

var obj2 = new Person(“Luo”, 21);

obj1.showName(); //Koji

obj1.showAge(); //22

obj2.showName(); //Luo

obj2.showAge(); //21

/script

構造函數的方式和工廠方式一樣,會為每個對象創建獨享的函數對象。當然也可以將這些函數

對象定義在構造函數外面,這樣又有了對象和方法相互獨立的問題。

原型方法:

該方法利用的對象的prototype屬性

複製代碼代碼示例:

script type=”text/javascript”

function Person(){} //定義一個空構造函數,且不能傳遞參數

//將所有的屬性的方法都賦予prototype屬性

Person.prototype.name = “Koji”; //添加屬性

Person.prototype.age = 22;

Person.prototype.showName = function(){ //添加方法

alert(this.name);

}

Person.prototype.showAge = function(){

alert(this.age);

}

var obj1 = new Person(); //生成一個Person對象

var obj2 = new Person();

obj1.showName(); //Koji

obj1.showAge(); //22

obj2.showName(); //Koji

obj2.showAge(); //22

/script

當生成Person對象的時候prototype的屬性都賦值給了新的對象。那麼屬性和方法是共享的。

該方法的問題首先是構造函數不能傳參,每個新生成的對象都有默認值。其次,方法共享沒有任何問題,但是屬性共享就有問題,當屬性是可改變狀態的對象的時候。

例子:

複製代碼代碼示例:

script type=”text/javascript”

function Person(){} //定義一個空構造函數,且不能傳遞參數

Person.prototype.age = 22;

Person.prototype.array = new Array(“Koji”, “Luo”);

Person.prototype.showAge = function(){

alert(this.age);

}

Person.prototype.showArray = function(){

alert(this.array);

}

var obj1 = new Person(); //生成一個Person對象

var obj2 = new Person();

obj1.array.push(“Kyo”); //向obj1的array屬性添加一個元素

obj1.showArray(); //Koji,Luo,Kyo

obj2.showArray(); //Koji,Luo,Kyo

/script

以上代碼通過obj1向obj1的屬性array添加元素的時候,obj2的arra屬性的元素也跟着受到影響,原因就在於obj1和obj2對象的array屬性引用的是同一個Array對象,那麼改變這個Array 對象,另一引用該Array對象的屬性自然也會受到影響混合的構造函數/原型方式。

使用構造函數定義對象的屬性,使用原型(prototype)定義對象的方法,這樣就可以做到屬性私有,而方法共享。

例子:

複製代碼代碼示例:

script type=”text/javascript”

function Person(name, age) {

this.name = name;

this.age = age;

this.array = new Array(“Koji”, “Luo”);

}

Person.prototype.showName = function() {

alert(this.name);

}

Person.prototype.showArray = function() {

alert(this.array);

}

var obj1 = new Person(“Koji”, 22); //生成一個Person對象

var obj2 = new Person(“Luo”, 21);

obj1.array.push(“Kyo”); //向obj1的array屬性添加一個元素

obj1.showArray(); //Koji,Luo,Kyo

obj1.showName(); //Koji

obj2.showArray(); //Koji,Luo

obj2.showName(); //Luo

/script

屬性私有後,改變各自的屬性不會影響別的對象。同時,方法也是由各個對象共享。在語義上,

這符合了面相對象編程的要求。

4、動態原型方法

複製代碼代碼示例:

script type=”text/javascript”

function Person(name, age) {

this.name = name;

this.age = age;

this.array = new Array(“Koji”, “Luo”);

//如果Person對象中的_initialized為undefined,表明還沒有為Person的原型添加方法

if (typeof Person._initialized == “undefined”)

{

Person.prototype.showName = function() {

alert(this.name);

}

Person.prototype.showArray = function() {

alert(this.array);

}

Person._initialized = true; //設置為true,不必再為prototype添加方法

}

}

var obj1 = new Person(“Koji”, 22); //生成一個Person對象

var obj2 = new Person(“Luo”, 21);

obj1.array.push(“Kyo”); //向obj1的array屬性添加一個元素

obj1.showArray(); //Koji,Luo,Kyo

obj1.showName(); //Koji

obj2.showArray(); //Koji,Luo

obj2.showName(); //Luo

/script

這種方法和構造函數/原型方式大同小異。只是將方法的添加放到了構造函數之中,同時在構造函數Person上添加了一個屬性用來保證if語句只能成功執行一次。

在實際應用中採用最廣泛的是構造函數/原型方法。動態原型方法也很流行,它在功能上和構造函數/原型方法是等價的,不要單獨使用構造函數或原型方法。

如何使用Createjs來編寫HTML5遊戲EaselJS簡介

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

,

,

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方法後面有說,是自己封裝的。

然後進行舞台循環設置,上面有注釋了,就不說了。

如何使用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();

}

介紹幾個HTML5動畫工具

HTML5使得開發者能為你的網站創建出驚人的動畫效果。這些很棒的動畫效果會為你的網站增添更多吸引力,接着會帶來更多的生意。這些用HTML5創建的動畫效果很出色,看起來很驚人。但為了做出這種動畫效果,你需要經歷很多比較麻煩的工作,所以你可以使用一些免費或市面上收費的HTML5動畫工具。

本文將會為大家介紹市面上最好的HTML5動畫工具。這個清單使我們極為用心列出來的,以為大家呈現出真正有用且專業的HTML5動畫工具。所以接着讀下去並找到最符合你需求的那個工具吧,以下每個工具都有它獨特的地方。

1. Mixeek

這是一款用來設計和運行Web動畫和交互的免費應用工具。它基於JavaScript,CSS3和HTML5,它有着輕量級、已使用的特點。

2. Animatron

它主要用來設計和發佈動畫/交互的內容,包括在PC端和手機端兩個地方。

3. Tumult Hype

設計師們可以用它創造出漂亮的Web內容,而且幾乎不用任何的Coding,可以運行在桌面、手機和Pad上。

4. Mugeda

Mugeda是一個基於雲平台的專業可視化環境,用於直接在瀏覽器中製作富含動畫和交互的HTML5內容。設計師無需任何編碼,就可以製作富有感染力的移動動畫內容。

5. HTML5 Maker

這是一款製作動畫、標語和有感染力圖像的最佳幫手,而且它是免費的。

6. Hippo studios

它提供了一個可以創造超強動畫、複雜遊戲、多媒體、App等的平台。

7. Sencha

Sencha Space 是安全應用管理平台,幫助你更好的部署你的應用給大部分用戶,支持大多數設備,使用最新的 hassle。

8. Blysk

這又是一款實用工具,它可以幫助Web設計師創造頁面上的動畫,有更多的交互效果。

9. Radiapp

它可以為你的網站創造視頻、動畫和圖像。

10. Createjs

CreateJS是一個JavaScript庫,可以說是一款為HTML5遊戲開發的引擎,幫助用戶有更好的體驗。

11.Motion Composer

Motion Composer是一套用於對比、整合和展示動作捕捉數據的軟件包。可以製作多特徵的動畫,有着簡單易用的接口。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/235794.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:56
下一篇 2024-12-12 11:56

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • Python中字典的特點

    Python中的字典是一種無序的、可變的鍵(key)值(value)對集合。字典是Python的核心數據結構之一,它具有以下幾個特點: 一、隨機性 字典是無序的,即字典中的鍵值對沒…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用conda create -n python 3.6

    conda是一個非常流行的Python包管理器,它可以幫助我們在不同的環境中管理不同的包。conda create -n python 3.6是創建一個名為python的環境,並在…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27

發表回復

登錄後才能評論