小编noa*_*hnu的帖子

CSS3矩阵旋转

我有一个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)

javascript 3d matrix css3

21
推荐指数
1
解决办法
2880
查看次数

BroadcastReceiver for ACTION_MEDIA_BUTTON无效

我正在为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)

java android broadcastreceiver android-intent

18
推荐指数
1
解决办法
2万
查看次数

函数未使用setTimeout定义

出于某种原因,我将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)

javascript settimeout

1
推荐指数
1
解决办法
707
查看次数