写了个计算物理电表改装的小程序

写了个计算物理电表改装的小程序

创意 637 字 / 1 分钟
AI 总结 以下AI总结内容由腾讯混元大模型生成

本文介绍了一个基于ActionScript 3的小程序,用于实现电表的改装。作者从双十一购物的经历谈起,然后描述了编写此项目的初衷和遇到的挑战。在处理物理计算公式的过程中,通过查阅资料和复习笔记,最终完成了代码编写。

  1. 双十一购物体验:作者分享了双十一期间的购物经历,以及天猫折扣给他的带来的实惠。

  2. 项目灵感:作者的同学提出了一个关于物理电表改装的小项目,作者接受了这个挑战,并开始了编程工作。

  3. 开发过程:作者详细描述了UI界面的设计,并解释了如何根据用户的选择来切换不同的物理量程并进行计算。

  4. 物理公式应用:在开发过程中,作者遇到了物理计算公式的难题,通过查阅资料和复习笔记,最终掌握了所需的公式。

  5. 代码实现:最后,作者提供了完整的AS3代码,包括初始化函数、事件监听器以及相关的计算逻辑。

总体而言,这是一个关于如何在项目中应用物理知识的实际例子,展示了通过技术手段解决实际问题的能力。

今天双十一,早上起来边将昨晚的购物车给清空了, 天猫的折扣还是可以的,12点前还是180多元,之后就降到了140多。

53秒破10亿真的不是吹的。

 

昨天本来想个小项目,但并不知道该写些什么。正好同学在看最近学的物理电表的改装,便让我试试。粗略想了一下应该还不难,便开始写了。因为电脑上只有Animate CC,所以就直接用AS3写帧上了。

UI界面如图:

Psy_UI

其实在界面交互等方面都不是问题,主要是改装时的物理计算公式并不太熟。

上网查了一下,又翻了下上课记得笔记(之前的发的 欧姆定律(2)学案不见了QAQ),总算是想起来一些了:

Psy-sovle

话说这图找了我好久...

 

最终代码如下:

import flash.events.MouseEvent;
import flash.text.TextField;
import flash.ui.Mouse;

var R: Number = 0;
var maxI: Number = 0;
var maxU: Number = 0;
var unit: Boolean = true; //true I   false U
var n: Number;
var lc: Number;
var newR: Number;

function onStart() {
	if (txt_R.text == "") {
		txt_log.text = "请输入电阻"
	} else if (txt_maxSize.text == "") {
		txt_log.text = "请输入量程"
	} else if (txt_max.text == "") {
		txt_log.text = "请输入满偏电流/电压"
	} else {
		R = Number(txt_R.text);
		lc = Number(txt_maxSize.text);
		
		
		if (RB_I.selected == true) {
			maxU = Number(txt_max.text);
			maxI = maxU / R;   
			txt_other.text = "满偏电流: "+String(maxI)

		} else if (RB_U.selected == true) {
			maxI = Number(txt_max.text);
			maxU = maxI * R;
			txt_other.text = "满偏电压: "+String(maxU)
		}
		calcute();
	}

}

function calcute(): void {
	if (unit) {
		//I
		n = lc / maxI
		newR = R / (n - 1)
		txt_log.text = "应该并连一个 " + newR.toString() + " 欧的电阻。"
		txt_log.text += "总电阻为 "+ String(R*newR / (R+newR)) +" 欧。"
	} else {
		//U
		n = lc / maxU
		newR = (n - 1) * R;
		txt_log.text = "应该串连一个 " + newR.toString() + " 欧的电阻。"
		txt_log.text += "总电阻为 "+ String(R+newR) +" 欧。"
	}
}
Btn_start.addEventListener(MouseEvent.CLICK, onClick);
function onClick(evt: MouseEvent): void {
	onStart();

}




RB_1.addEventListener(MouseEvent.CLICK, onRB);
RB_2.addEventListener(MouseEvent.CLICK, onRB);
function onRB(evt: MouseEvent): void {
	switch (evt.target) {
		case RB_1:
			unit = true;
			txt_unit.text = "A"
			break;
		case RB_2:
			unit = false;
			txt_unit.text = "V"
	}
}	
谢谢老板 Thanks♪(・ω・)ノ


喜欢这篇文章?为什么不打赏一下呢?