我有一个CSS 3D立方体,我正试图向左/右/向上/向下旋转,因为它看起来像用户.如果我使用css rotation函数,那么我旋转轴,而不是立方体.
网上有很多关于X,Y,Z矩阵旋转计算的文章,但我现在花了好几天试图设置这个东西,这些信息都没有真正帮助我.
解决我的问题的方法是一个WebKitCSSMatrix对象,它有自己的旋转功能,可以起到魔力的作用.关于小提琴的一个例子:http://jsfiddle.net/joecritch/tZBDW/.但同样,这只依赖于Uppon Webkit,但我需要在这里进行交叉的讨论.
现在,成功的方法有三个步骤:
1)我需要获得当前矩阵,设置方向向量(上/下为1,0,0,左/右旋转为0,1,0)并设置角度.DONE.
2)我需要根据当前矩阵计算新的旋转矢量.DONE.
3)我需要通过新的矢量和角度实际旋转当前矩阵.问题.
var newMArray = deMatrix(".cube");//getting current matrix from CSS
var v = [vecX, vecY, vecZ, 0];//current vector (1,0,0) or (0,1,0)
var newV = newMVector(newMArray, v);//calculating new vector for current matrix
//getting the angle for each axis based on new vector
angleX = newV[0]*angle;
angleY = newV[1]*angle;
angleZ = newV[2]*angle;
this.rotateX -= angleX;
this.rotateY -= angleY;
this.rotateZ -= angleZ;
//calculating the rotation matrix
var rotationXMatrix, …Run Code Online (Sandbox Code Playgroud) 我正在为Android OS 4.0.3(ICS)编写一个Android应用程序.问题是我没有从BroadcastReceive的onReceive()方法获取Log.d()的输出,这意味着我的应用程序没有正确处理广播.
我已经阅读了关于如何在单击ACTION_MEDIA_BUTTON时运行代码的无数问题.当我的工作不起作用时,我甚至复制+粘贴代码,只是为了看看它是否可行.
我想要处理的ACTION_MEDIA_BUTTON是耳机上的单个按钮,允许用户接听/结束通话,播放/暂停音乐.当我点击它时,而不是我的应用程序处理此按钮,我的Nexus S Android上的股票音乐播放器开始播放一首歌曲.
我没有将我的代码放在另一个类中,也许这就是为什么它不起作用?
这是在onCreate()方法上找到的代码(这个特定的代码是在我编写的代码无效后从网站上复制的):
IntentFilter mediaButtonFilter = new IntentFilter(
Intent.ACTION_MEDIA_BUTTON);
mediaButtonFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
BroadcastReceiver brMediaButton = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
Log.d("Event", "Media button!");
this.abortBroadcast();
KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if(key.getAction() == KeyEvent.ACTION_UP) {
int keycode = key.getKeyCode();
if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
Log.d("TestApp", "Next Pressed");
} else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
Log.d("TestApp", "Previous pressed");
} else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
Log.d("TestApp", "Head Set Hook pressed");
}
}
} …Run Code Online (Sandbox Code Playgroud) 出于某种原因,我将js代码包装在一个立即调用的函数表达式中,我得到了progressBar not defined.想知道为什么会这样吗?
(function(){
"use strict"
var progressBar = function(){
var bar = document.getElementById('pbar'),
status = document.getElementById('status'),
barValue = bar.value;
status.innerHTML = barValue + "%";
bar.value++;
var increment = setTimeout("progressBar()", 50);
if(bar.value == 100){
status.innerHTML = '100% - Straight Besting';
bar.value = '100';
clearTimeout(increment);
}
}
progressBar();
})()
Run Code Online (Sandbox Code Playgroud)