调用MessageBox.Show没有来得及弹出对话框再次调用MessageBox.Show引起0x8000FFFF异常,解决方法:
private static mMsgboxShown = false;
public static MessageBoxResult ShowMessageBox(string text,stringcaption,MessageBoxButton msgBoxBtn)
{
MessageBoxResult ret =MessageBoxResult.None;
if (!mMsgboxShown)
{
mMsgboxShown = true;
ret = MessageBox.Show(text, caption,msgBoxBtn);
mMsgboxShown = false;
}
return ret;
}
下面是捕获到的异常:
//try
{
if (MessageBox.Show("是否退出***?\n点击确认,退出。\n点击取消,继续使用。",
"退出程序:", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
{
e.Cancel = true;
}
}
//catch (Exception err)
//{
// Message "0x8000ffff"
// StackTrace
// "at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
// at MS.Internal.XcpImports.MessageBox_ShowCore(String messageBoxText, String caption, UInt32 type)
// at System.Windows.MessageBox.ShowCore(String messageBoxText, String caption, MessageBoxButton button)
// at System.Windows.MessageBox.Show(String messageBoxText, String caption, MessageBoxButton button)
// at BaseClass.BasicPhoneApplicationPage.PhoneApplicationPageModel.PhoneApplicationPage_BackKeyPress(Object sender, CancelEventArgs e)
// at Microsoft.Phone.Controls.PhoneApplicationPage.ShellPageCallback_OnBackKeyPress(Object source, BackKeyPressEventArgs e)
// at Microsoft.Phone.Shell.Interop.ShellPageCallback.FireOnBackKeyPress(IntPtr pageThis)
// at MS.Internal.XcpImports.MessageBox_ShowCoreNative(IntPtr context, String messageBoxText, String caption, UInt32 type, Int32& result)
// at MS.Internal.XcpImports.MessageBox_ShowCore(String messageBoxText, String caption, UInt32 type)
// at System.Windows.MessageBox.ShowCore(String messageBoxText, String caption, MessageBoxButton button)
// at System.Windows.MessageBox.Show(String messageBoxText, String caption, MessageBoxButton button)
// at BaseClass.BasicPhoneApplicationPage.PhoneApplicationPageModel.PhoneApplicationPage_BackKeyPress(Object sender, CancelEventArgs e)
// at Microsoft.Phone.Controls.PhoneApplicationPage.ShellPageCallback_OnBackKeyPress(Object source, BackKeyPressEventArgs e)
// at Microsoft.Phone.Shell.Interop.ShellPageCallback.FireOnBackKeyPress(IntPtr pageThis)"
//}
uboot-2008-10之支持命令行历史记录、命令补全
1、描述
之前有做Uboot移植实验时,是从最小系统做起的,当时未能移植命令行历史记录、命令补全功能。每次只要输入一个单词错误,uboot就提示未定义指令。按下向上键都跑到输出结果的那行了。这样子只得按复位键重启,然后小心翼翼的输入指令。后来看了下友善之臂官网的uboot移植手册,才知道其实很简单。
u-boot的shell使用的是HUSH shell,来自busybox的那个HUSH shell。hush.h在./include/里面,hush.c在./common里面,对比busybox那个hush.c发现u-boot的这个少很多(单从文件大小来看,具体没能力研究),应该是减少很多功能了。再去查busybox用了哪些shell,结果有msh shell、ash shell、hush shell,看busybox的配置(make menuconfig命令)时,
2、做法:
只要在开发板相关的头文件,如mini2440.h定义下面两个宏,就能实现命令自动补齐、命令历史功能。
#define CONFIG_CMDLINE_EDITING
#define CONFIG_AUTO_COMPLETE
1. 物体更改shader脚本时,shader脚本和color值可以动态的改变,但是效果没有达到。
总结:在更改shader的时候,renderer.enabled= true;我当时的代码在该物体的父物体里面把所有的子物体的enabled=false,之前有点意识到这个错误了,所以我当时在动态的把这个物体的enabled=true了,但是结果不行。最后把那个父物体的那行代码注释了终于ok了,总之,shader以后遇到问题的话可以先考虑一下renderer的问题。
(2012/11/12,周一)
2. “斜抛运动”,用数学抛物线只能模拟轨迹,不能模拟每一时刻的速度;用力的方法要得加碰撞,而且会出现意想不到的情况;最后老大说用物理斜抛运动的公式,即模拟每一时刻物体的位置,效果还不错,而且这样改起来也比较方便。(2012/11/13,周二)
3. Time.time是程序一运行时就开始计时的。
Start(){ t0=Time.time; } Update(){t1= Time.time – t0;}
(2012/11/15,周四)
4. 卡主要是解码比较耗资源,需要及时播放的简短声音可以用波形文件(wav), 如果开启了3D音效,作用范围较大,场景又复杂的话,也是很耗资源的。2D游戏音效是跟Audio
Listener的距离是无关的,但是在3D场景中,音效就这个就跟Audio Listener有关了。其实Audio Listener就相当于一个聆听者,在3D场景中越靠近聆听者,声音会越大声,离聆听者越远,听见的声音越小,在2D游戏中,音效跟这个Audio Listener的距离关系不大。
(2012/11/16,周五)
5. 其实网游就是这样做的,通过网银,支付宝支付,不论是道具网游,还是点卡网游,隔离开支付和消费就安全了. (2012/11/19,周一)
两星期总结:
对项目一个整体的设计有了一些认识,不要太局限,不要太粗心。好好学好物理这块,有时间学学UI,再有时间玩玩2D。用最快的速度进步。
6. var Renderers: Component[];
Renderers =gameObject.GetComponentsInChildren (Renderer);
要用Component,如果你写成Renderer就不行了,之前我在用AduioSource时也遇到了。
7.最近用到的一些函数方法:
A.renderer.material.SetColor ("_SpecColor", Color.red );
B.renderer.material.mainTextureOffset = Vector2 (offset, 0);
C.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0);
D.AudioSource.PlayClipAtPoint(clip, Vector3 (5, 1, 2));
E.Physics.OverlapSphere(position : Vector3, radius: float, layerMask : int = kAllLayers) : Collider[]
F. animation.AddClip(animation.clip,"run",0,16);
//animation["run"].speed= 0.9;
animation["run"].wrapMode= WrapMode.Loop;
vareventRun0 : AnimationEvent =CreateEvent("PlaySoundWithAudioSource","M17",0);
vareventRun1 : AnimationEvent =CreateEvent("PlaySoundWithAudioSource","M17",animation["run"].length* 0.5);
animation["run"].clip.AddEvent(eventRun0);
animation["run"].clip.AddEvent(eventRun1);
G. animation.AddClip(animation.clip,"wing",0,40);
animation["wing"].speed = 1;
animation["wing"].wrapMode =WrapMode.Once;
var event0 : AnimationEvent = newAnimationEvent();
event0.time =animation["wing"].length * 0.2;
event0.functionName ="PlaySoundOne";
event0.stringParameter="M30";
animation["wing"].clip.AddEvent(event0);
H. enum ActionState
{
run,
jump,
moveLeft,
moveRight,
spade,
fall,
fallLeft,
fallRight
}