物理是一个很有趣的东西,flash 结合物理是其中一个很重要的方向,也是学习flash技术一个很重要的门。最近翻阅一些资料,复习了一下物理和flash技术,虽然是一点皮毛的东西,不过先把他记录下来。为日后需要作一个基础,下面我们采用小球模拟重力,但是本身没有涉及到质量,没有涉及到球与球之间的碰撞,这样可操作性会简单一些,容易掌握,重力结合当中。在Make thing move 一书当中,这本书已经讲解得很深入,它有碰撞,和能量损失等模拟。可以参考这本书,不过既然初学的,先简单的一些好。自己本身物理知识还在恶补当中。只能一点一点来。
重力模拟,只要技巧在于加速度和位移是怎样结合起来。我们知道在每一帧刷新的时候,不断执行
(物体.y+=值)。物体就会一直向下移动。
(物体的垂直速度vy+=g)加上一个重力加速度,使物体在vy垂直方向的速度有了一个额外的递增值,因此vy值会不断增加
从而物体.y 的值会发生变化,其实flash 里面隐含了一个时间概念。每一帧其实有一个时间间隔,这样这个隐含的时候就会无形加上去了
速度公式:vt=v0+at(其中v0为初始速度,t为时间)
位移的公式:s=v0t + 1/2at^2 (其中v0为初始速度,a为加速度,t为时间);
......
目前在PC远程访问设备Flash,也就是部署TinyCLR和下载应用程序。在以前写的《NandFlash驱动开发》文章,我们知道Flash被分为六个区,典型的结构如下(以Sam9261_ek开发板为例):
const BlockRange g_K9F2G_8_BlockStatus[] =
{
{ BlockRange::BLOCKTYPE_BOOTSTRAP , 0, 1 },
{ BlockRange::BLOCKTYPE_CONFIG , 2, 2 },
{ BlockRange::BLOCKTYPE_CODE , 3, 24 },
{ BlockRange::BLOCKTYPE_DEPLOYMENT, 25, 29 },
{ BlockRange::BLOCKTYPE_DEPLOYMENT, 30, 34 },
{ BlockRange::BLOCKTYPE_DEPLOYMENT, 35, 39 },
{ BlockRange::BLOCKTYPE_DEPLOYMENT, 40, 48 },
{ BlockRange::BLOCKTYPE_STORAGE_A , 49, 49 },
{ BlockRange::BLOCKTYPE_STORAGE_B , 50, 50 },
{BlockRange::BLOCKTYPE_FILESYSTEM, 51, FLASH_BLOCK_COUNT - 1 }
};
我们能否直接读写该Fl ......
Flex最强大的特性之一就是它在标签和
ActionScript类之间创建了一个简单的映射。这是一个简单的概念,但是我多次发现不懂Flex的人对这点是如何工作的或者‘它为什么有用’理解
起来有困难。
对那些学习Flex的新手,这里有一些规则以及
一些简单的例子让你们以此开始学习这个特性。
例子 1 —— 开始的三个规则
规则 1
—— 每个标签相当于一个以标签名为类名的类的一个实例
规则 2
—— 标签的每个属性(attribute)转变为对象中的一个property
规则 3
—— 每个标签中的id属性转变为相应实例中的一个变量
让我们假设你有一个象这样的类:
public class Contact
{
public var home : Location;
public var work : Location;
public var firstname : String;
public var lastname : String;
public var isFriend : Boolean = false;
}
你可以通过一个MXML文件创建它的一个实例,
如下:
<Contact
id=”myContact” firstname=”Susan” lastname=”Smith” isfriend=”true” />
粗略地讲,上面的MXML等价于下面的
ActionScript:
var my ......
主要解决:
1、xml外部数据的引用,可以用固定xml文件编写测试,之后可以用webservices引用后台数据。
2、对xml数据和界面控件的绑定和操作。
数据源,同在src目录下
data/invoices.xml内容:
<?xml version="1.0"?>
<invoices>
<invoice>
<customer>
<firstname>Maria</firstname>
<lastname>Smith</lastname>
</customer>
<items>
<lineitem price="21.41" quantity="4">Widget</lineitem>
<lineitem price="2.11" quantity="14">Mouse</lineitem>
<lineitem price="8.88" quantity="3">Wrench</lineitem>
</items>
</invoice>
<invoice>
<customer>
<firstname>John</firstname>
&nbs ......
主要解决:
1、xml外部数据的引用,可以用固定xml文件编写测试,之后可以用webservices引用后台数据。
2、对xml数据和界面控件的绑定和操作。
数据源,同在src目录下
data/invoices.xml内容:
<?xml version="1.0"?>
<invoices>
<invoice>
<customer>
<firstname>Maria</firstname>
<lastname>Smith</lastname>
</customer>
<items>
<lineitem price="21.41" quantity="4">Widget</lineitem>
<lineitem price="2.11" quantity="14">Mouse</lineitem>
<lineitem price="8.88" quantity="3">Wrench</lineitem>
</items>
</invoice>
<invoice>
<customer>
<firstname>John</firstname>
&nbs ......
IED Eclipse Java EE IDE for Web Developers:
DTD 类型约束文件
1. Window->Preferences->XML->XML Catalog->User Specified Entries窗口中,选择Add 按纽
2.在Add XML Catalog Entry 对话框中选择或输入以下内容:
Location: F:\soft\programmingSoft\Framework\Ibatis\sql-map-config-2.dtd
Key Type: URI
KEY: http://ibatis.apache.org/dtd/sql-map-config-2.dtd //在dtd中找
或者:
Location: F:\soft\programmingSoft\Framework\Ibatis\sql-map-config-2.dtd
Key Type: Public ID
KEY: -//ibatis.apache.org//DTD SQL Map Config 2.0//EN
Specify alternative web address:h ......
在C语言编程中,static的一个作用是信息屏蔽!
比方说,你自己定义了一个文件 -- 该文件中有一系列的函数以及变量的声明和定义!
你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可以在该函数、变量的前面加上static,代表他们只能被当前文件中的函数使用!
而在C++中,用static来作为信息屏蔽就显得没有必要了!因为,C++有了信息屏蔽的利器 -- class机制!
类中的private属性的变量和函数就对外禁止访问!
然后是C/C++通用的函数作用域的static型的变量!其目的,也是为了信息的屏蔽!
int fun() {
static int a = 1;
a++;
}
在第一次进入这个函数的时候,变量a被初始化为1!并接着自增1!
以后每次进入该函数,a就不会被再次初始化了,仅进行自增1的操作!
在static发明前,要达到同样的功能,则只能使用全局变量:
int a = 1;
int fun() {
a++;
}
那么,a的值就有可能被其他函数所改变!
最后,说说类中的static变量和函数。
这种存储属性的变量和函数是同一种类的不同实例之间通信的桥梁!
......
在C语言编程中,static的一个作用是信息屏蔽!
比方说,你自己定义了一个文件 -- 该文件中有一系列的函数以及变量的声明和定义!
你希望该文件中的一些函数和变量只能被该文件中的函数使用,那么,你可以在该函数、变量的前面加上static,代表他们只能被当前文件中的函数使用!
而在C++中,用static来作为信息屏蔽就显得没有必要了!因为,C++有了信息屏蔽的利器 -- class机制!
类中的private属性的变量和函数就对外禁止访问!
然后是C/C++通用的函数作用域的static型的变量!其目的,也是为了信息的屏蔽!
int fun() {
static int a = 1;
a++;
}
在第一次进入这个函数的时候,变量a被初始化为1!并接着自增1!
以后每次进入该函数,a就不会被再次初始化了,仅进行自增1的操作!
在static发明前,要达到同样的功能,则只能使用全局变量:
int a = 1;
int fun() {
a++;
}
那么,a的值就有可能被其他函数所改变!
最后,说说类中的static变量和函数。
这种存储属性的变量和函数是同一种类的不同实例之间通信的桥梁!
......