分享好友 最新动态首页 最新动态分类 切换频道
新手如何创建CreateJS的TS版项目?
2024-12-25 16:53

新手如何创建CreateJS的TS版项目?

前提:

需要先安装 Visual Studio Code 和 nodejs

nodejs官网https://nodejs.org/zh-cn去官网下载安装包安装既可

在电脑桌面上,创建一个文件夹,作为项目文件夹。

打开Visual Studio Code,把创建的文件夹拖进Visual Studio Code。

Visual Studio Code里面通过菜单栏,选择终端,新建终端。

安装 TypeScript 通过 npm 安装

把下面的 npm 命令 在终端运行,这是安装ts的命令

npm install -g typescript

在终端跑 npm 命令 tsc -v 如果显示版本号说明安装成功

安装ts-node

在终端跑 npm install -g ts-node

继续跑 ts-node -v

如果出现版本号说明安装成功

在项目根目录创建两个文件夹,分别是 dist 和 src

在终端跑 tsc --init 生成tsconfig.json文件

在终端跑 npm init -y 生成package.json文件

安装 createjs ts

通过 npm 安装 npm install createjs-ts

安装 webpack

在终端跑 npm install --save-dev typescript ts-loader webpack webpack-cli

在项目根目录创建一个webpack.config.js文件,用于配置Webpack打包过程

tsconfig.json 内容如下(我配置的,你们也可以自己找教程配置哈)

{

"compilerOptions": {

"target": "es5", // 指定编译目标的ECMAScript版本

"module": "commonjs", // 指定生成的模块系统

"strict": true, // 启用所有严格类型检查选项

"esModuleInterop": true, // 启用ES模块互操作

"skipLibCheck": true, // 跳过对库文件的类型检查

"outDir": "https://www.bilibili.com/opus/dist", // 指定输出目录

"rootDir": "https://www.bilibili.com/opus/src", // 指定根目录,用于确定TypeScript输入文件的相对位置

"removeComments": true, // 删除注释

"noImplicitAny": false, // 禁用隐式any类型

"sourceMap": true, // 生成相应的.map文件

"experimentalDecorators": true, // 允许使用实验性的装饰器特性

"emitDecoratorMetadata": true // 为装饰器生成元数据

},

"include": [

"src*" // 包含src目录下的所有文件

],

"exclude": [

"node_modules", // 排除node_modules目录

"**/*.spec.ts" // 排除所有的测试文件

]

}

tsconfig.json 注意两项:

"outDir": "https://www.bilibili.com/opus/dist", // 打包出来的文件存放目录

"rootDir": "https://www.bilibili.com/opus/src", // 你的 .ts 代码目录

我配置的,你们也可以自己找教程配置哈

webpack.config.js 内容如下(我配置的,你们也可以自己找教程配置哈)

const path = require('path');

module.exports = {

mode: 'development',//模式

entry: 'https://www.bilibili.com/opus/src/index.ts',//项目入口文件 文档类

output: {

filename: 'index.js',//打包后的文件名

path: path.resolve(__dirname, 'dist'),//打包出来的文件存放目录

},

externals: {

'createjs-ts': 'window.createjs'//不把cjs打包进去cjs指向window.createjs(要在网页引入cjs主文件)

},

module: {

rules: [

{

test: /.tsx?$/,//正则表达式匹配.ts或.tsx文件

use: 'ts-loader',//使用ts-loader处理TypeScript文件

exclude: /node_modules/,//排除node_modules目录

},

],

},

resolve: {

extensions: ['.tsx', '.ts', '.js'],//自动解析的文件扩展名

},

devServer: {

static: 'https://www.bilibili.com/opus/dist',//告诉 dev server 从哪个目录提供内容

open: true,//自动打开浏览器

port: 8080,//设置服务器监听的端口

hot: true,//启用模块热替换

}

};

webpack.config.js 注意 devServer

devServer 是 webpack 提供的一个服务器

使用该服务器,每次改完 .ts 代码不需要重新打包也可以看实时效果。

调试用的

安装:Webpack Dev Server

Webpack Dev Server 是一个实时服务器,使用Webpack Dev Server,

每次改完 .ts 代码 不需要重新打包 也可以看 实时效果

安装实时服务器

在终端跑 npm install webpack-dev-server --save-dev

在 src 目录下创建一个 index.ts

index.ts 内容如下

import createjs from "createjs-ts";

var cc:createjs.Container=new createjs.Container();

在 package.json 中添加一个脚本来运行Webpack:测试是否可以用 webpack打包

打包,发布,生成是一个意思,是 .ts 生成 .js 的意思。

package.json 里面的

"scripts": { "test": "echo "Error: no test specified" && exit 1" },

替换成:

"scripts": {

"build": "webpack"

}

保存

终端,运行生成任务,选择 npm 生成

如果在 dist 目录下生了 index.js 文件说明 webpack打包成功

在 dist 目录下 创建 index.html 来引用生成的 .js 代码

index.html 内容如下

<!DOCTYPE html><html lang="zh">

<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src=https://www.bilibili.com/opus/"https://www.bilibili.com/opus/index.js" type="module"></script></head>

<style> #hb { position: absolute; display: block; background-color: bisque; }</style>

<body> <canvas id="hb" width="960" height="640"></canvas></body>

</html>

index.ts 代码如下

import createjs from "createjs-ts";

let canvas: HTMLCanvasElementlet stage: createjs.Stage

window.addEventListener("load", initFn);function initFn() {

canvas = document.getElementById("hb") as HTMLCanvasElement stage = new createjs.Stage(canvas)

console.log(stage)}

注意 webpack.config.js 里面的 externals

externals: { 'createjs-ts': 'window.createjs'//不把cjs打包进去cjs指向window.createjs(要在网页引入cjs主文件) },

默认是把 cjs 主文件打包进生成的 .js 里面的,我这里设置,不把 cjs 主文件打包进去(不打包cjs主文件进.js的话 需要在 index.html 引入 cjs 主文件)

你也可以删除, externals:的内容这样就打包进去.js里面无需在index.html引入cjs主文件,(我刚刚把 externals里面的内容删了,打包cjs进去了所以不需要在index.html引入cjs主文件)

启动服务器:启动服务器看实时代码效果

在终端跑 npx webpack serve 来启动实时服务器

启动实时服务器后,每次修改 .ts 文件就可以看实时效果

调试就用实时服务器,打包那是你项目完成了要上传服务器才打包。

可以看到 index.ts 里面 我输出了 舞台 控制台可以看到

到此环境配置完成,可以在 index.ts 里面写你要的效果了。

上面说的都是必须得配置环境,这里就是简单演示创建 createjs ts 项目的方法(实际上是给新手参考的)

createjs 发扬光大

另外分享一个 createjs 早期版 pdf

createjs HTML5 Games.pdf

链接: https://pan.baidu.com/s/1TJ5FMhtsKHx2hBRfgviadA?pwd=jtf9

提取码: jtf9

另外说一下

新手如何创建画布 Canvas ?

1:通过标签创建

<canvas id="cc" width="960" height="640"></canvas>

2:通过 js 创建

let canvas = document.createElement("canvas");

canvas.width = 960;

canvas.height = 640;

document.body.appendChild(canvas);

两种创建效果是一样的

canvas.id = "cc"; (忘记了,补上)

给画布添加 css 的方法

<canvas id="cc" width="960" height="640" style="position: absolute;display: block;background-color: bisque;"></canvas>

也可以用 id 选择器(效果是一样的)

<style> #cc { position: absolute; display: block; background-color: bisque; z-index: 0; }</style>

position 属性指定了元素的定位类型

有意自己去看api说明:https://www.runoob.com/css/css-positioning.html

display 属性设置一个元素应如何显示

有意自己去看api说明:https://www.runoob.com/css/css-display-visibility.html

background-color 属性定义了元素的背景颜色.

有意自己去看api说明:https://www.runoob.com/css/css-background.html

overflow 属性可以控制内容溢出元素框时在对应的元素区间内添加滚动条

有意自己去看api说明:https://www.runoob.com/css/css-overflow.html

z-index属性是一个非常重要的属性,它用于控制元素在页面上的重叠顺序

就是我们 flash 以前的 深度层级遮挡关系的意思

再说一下软件

Adobe Animate(Flash)动画新时代

Adobe Animate 是一款非常专业的动画制作软件,由原 Adobe Flash Professional CC 更名得来。

维持原有Flash开发工具支持外新增 HTML 5 创作工具,为网页开发者提供更适应现有网页应用的音频、图片、视频、动画等创作支持。

Adobe Animate 可以让你为游戏,应用程序和网络设计交互式矢量和位图动画。 让动画片和横幅广告栩栩如生。 快速发布到多个平台,并覆盖台式机,移动设备和电视上的观众。

Adobe Animate 将拥有大量的新功能,特别是在继续支持 Flash SWF、AIR 格式的同时,还会支持 HTML5Canvas、WebGL,并能通过可扩展架构去支持包括 SVG 在内的几乎任何动画格式。

使用尖端的绘图工具为Windows PC设计交互式2D动画,并将其发布到多个平台(包括Flash / Adobe AIR,HTML5 Canvas,WebGL甚至是自定义平台),并通过广播电视或几乎任何台式机或移动设备吸引观众 。

业界领先的动画工具集使您可以创建可在任何屏幕上移动的应用,广告和出色的多媒体内容。 Adobe Animate(Adobe Flash)总是在不断完善,并定期推出新功能。

Adobe Animate 使用功能强大的插图和动画工具为游戏和广告创建基于Web的交互式内容。构建游戏环境,设计启动屏幕和界面,创建交互式播放器精灵,甚至集成音频。

使用 Adobe Animate,您可以直接在应用程序内进行所有资产设计和编码。

Adobe Animate(Adobe Flash)总是在不断完善,并定期推出新功能。

Flash 转 H5 HTML5 动画新时代

最新文章
阿里云服务器ECS实例规格怎么选?
启动一台ECS实例前,您需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。根据业务场景和vCPU、内存、网络性能、存储吞吐等配置划分,阿里云ECS提供了多种实例规格族,一种实例规格族又包括多个
百度诉360劫持流量案终审胜诉 360判赔40万
本报讯 (记者 王鑫) 昨日记者获悉,百度诉360劫持流量案终审宣判,法院判决书表明,奇虎360以保护网民利益为借口,对百度网页搜索结果进行插标,并非是为了公共利益,而是为了奇虎公司的经营私利,扰乱了互联网秩序。对此,法院维持一审
鸡西市牙套搭桥口腔医生排行榜一览名单发布-鸡西市牙套搭桥医生技术稳扎稳打
说到鸡西市牙套搭桥,找到一个经验十分丰富技术高超的牙套搭桥医生非常重要!今天本文就根据牙友们口碑给您汇总鸡西市牙套搭桥医生排名前10~都是鸡西市上牙友们评选出来的鸡西市牙套搭桥医生推荐名单哟!擅长项目:牙套搭桥,重度感染,发育
SEO如何创业,有哪些基本的步骤和策略?
创业是一条有前途的路。随着人们日益重视网络营销,SEO成为了一项非常具有价值的技能。SEO创业在未来几年将有非常大的发展潜力,但是SEO创业需要你有一定的技术基础,需要你对搜索引擎算法有了解,同时你还需要一些基本的策略和步骤来确保
【5210S(电信版)鲁大师下载】酷派5210S 电信版鲁大师10.9.0免费下载
手机跑分、验真假、清理垃圾专业工具!1亿用户选择的手机硬件专家。鲁大师发福利了,新用户下载即送现金!现在清理手机垃圾还能赚钱,轻松体现秒到账!===手机评测===【鉴别真假】全面检测各项指标,快速鉴别手机真伪,买到假机帮你上报维
网络数据爬取的基本步骤有哪些,结构解答解释落实_CXZS版?GH9
网络数据爬取的基本步骤包括:确定目标网站,分析网站结构,编写
网站地图对网站优化的重要性(优化搜索引擎爬虫)
在当今互联网时代,网站一个优秀的地图对网网站不仅需要良好的设计和内容,同时也需要具备良好的站优重性用户体验和搜索引擎优化。而网站地图作为一种重要的优化引擎工具,不仅可以方便用户浏览网站内容,搜索还能帮助搜索引擎更好地爬取网
拼多多助力群500人最新日期的二维码已经在朋友圈出现了
2.为了避免好友拉黑删除的情况,小编特地创建了微信助力群,群中都是参加各式各样助力砍价活动的群友,大家相互帮忙助力,点击下方快速进入助力砍价群。点击免费加入【拼多多互助砍价微信群】点击免费加入【拼多多互助砍价微信群】点我免费
高清美女写真:用AI一键生成你的梦想女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个科技飞速发展的时代,人工智能突破了传统的界限,让我们能够通过简单的操作,创造出超
水母网怎么发稿?水母网新闻推广介绍
在当今的网络时代,软文发稿已成为企业传播品牌与推广产品的重要手段之一。水母网作为一个专业的新闻稿软文推广平台,被许多企业和个人广泛使用。在这篇文章中,我们将深入探讨水母网怎么发稿,包括其功能、操作流程以及一些实用技巧,以帮
相关文章
推荐文章
发表评论
0评