精华内容
下载资源
问答
  • cocos2dx 3.3 cocos studio的交互性问题
    千次阅读
    2016-04-29 15:19:12

    最近在使用cocos studio的时候,发现里面有个选项:交互性,一直没有很明白具体是啥意思。通常这种时候,看源码就对了。


    交互性

    新建了个cocos studio工程,然后在上面加了个控件,做测试。

    勾选 交互性 的时候,对应的ccs文件里,会多一个属性 TouchEnable="True"

    于是,第一步就完成了,这个 交互性,应该就是指控件是否支持触摸操作


    源码

    知道了 交互性 的意义之后,就是看实现了。

    找到源码,cocos-->ui-->UIWidget-->Widget类-->setTouchEnable

    void Widget::setTouchEnabled(bool enable)
    {
        if (enable == _touchEnabled)
        {
            return;
        }
        _touchEnabled = enable;
        if (_touchEnabled)
        {
            _touchListener = EventListenerTouchOneByOne::create();
            CC_SAFE_RETAIN(_touchListener);
    	// 默认吞噬触摸,可以调用setSwallowTouches接口取消吞噬
            _touchListener->setSwallowTouches(true);
    	// 触摸事件处理
            _touchListener->onTouchBegan = CC_CALLBACK_2(Widget::onTouchBegan, this);
            _touchListener->onTouchMoved = CC_CALLBACK_2(Widget::onTouchMoved, this);
            _touchListener->onTouchEnded = CC_CALLBACK_2(Widget::onTouchEnded, this);
            _touchListener->onTouchCancelled = CC_CALLBACK_2(Widget::onTouchCancelled, this);
            _eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this);
        }
        else
        {
            _eventDispatcher->removeEventListener(_touchListener);
            CC_SAFE_RELEASE_NULL(_touchListener);
        }
    }

    然后看onTouchBegan

    bool Widget::onTouchBegan(Touch *touch, Event *unusedEvent)
    {
        _hitted = false;
        if (isVisible() && isEnabled() && isAncestorsEnabled() && isAncestorsVisible(this) )
        {
            _touchBeganPosition = touch->getLocation();
            if(hitTest(_touchBeganPosition) && isClippingParentContainsPoint(_touchBeganPosition))
            {
                _hitted = true;
            }
        }
        if (!_hitted)
        {
            return false;	// 点击不在区域内,返回false,后续处理也不管
        }
        setHighlighted(true);
        
        if (_propagateTouchEvents)
        {
            this->propagateTouchEvent(TouchEventType::BEGAN, this, touch);
        }
      
        pushDownEvent();
        return true;	// 点击在区域内,返回true,后续处理
    }
    再看releaseUpEvent

    void Widget::releaseUpEvent()
    {
        this->retain();
        if (_touchEventCallback)
        {
            _touchEventCallback(this, TouchEventType::ENDED);	// 触摸事件
        }
        
        if (_touchEventListener && _touchEventSelector)
        {
            (_touchEventListener->*_touchEventSelector)(this,TOUCH_EVENT_ENDED);
        }
        
        if (_clickEventListener) {
            _clickEventListener(this);	// click事件
        }
        this->release();
    }


    小结一下:

    交互性勾选是,默认吞噬触摸,如果点击在控件区域内,则处理后续事件,在区域外,则不处理。

    click事件在up时触发


    总结

    如果希望控件处理触摸、点击事件,就需要勾选 交互性

    如果希望事件往下层传播,那就在代码里找到对应的控件,调用setSwallowTouches(false)






    更多相关内容
  • 网页交互性设计

    千次阅读 2018-02-27 18:20:17
    交互性设计对于任何一个Web应用,用户互动是最基本的要求。为Web应用增加交互性,最常用的方法,莫过于使用 Javascript 或 jQuery、AJAX 了。本节不打算详细介绍这几种技术,只是简要介绍在网页版 word 中,如何...

    对于任何一个Web应用,与用户互动是最基本的要求。为Web应用增加交互性,最常用的方法,莫过于使用 Javascript 或 jQuery、AJAX 了。

    本节不打算详细介绍这几种技术,只是简要介绍在网页版 word 中,如何使用这些技术来实现目录展开折叠功能、文档结构视图功能、键盘翻页功能。这些功能看似不起眼,却非常实用,可以大大提高网页版 word 的易用性,增强用户体验。

    目录展开折叠

    如果目录树较长,经常需要滚动,才能找到想要的内容,使用起来极其不便。一个很人性化的功能,就是可以全部展开和全部收起整个目录。

    幸运的是,dtree 提供了两个方法,一个是 openAll() 方法,用于展开所有的节点,一个是 closeAll() 方法,用于收起所有的节点。

    我们只需定义两个链接,当点击链接时,分别调用调用 openAll() 和 closeAll() 方法,便可轻松实现目录全部展开和全部收起功能。

    可以使用文本链接,也可以使用图像 map。这里使用图像 map 实现,在图像上指定区域提供链接,供用户点击。需要注意的是,map 元素中 name 属性的值,必须与左栏顶部图像中 map 属性的值相对应。HTML代码如下:

    
    
    1. <map name="oAll">
    2. <area shape="rect" coords="0,0,22,24"  href="javascript: tree.openAll();">
    3. <area shape="rect" coords="22,0,44,24" href="javascript: tree.closeAll();">
    4. </map>

    可以为 map 中的 area 元素提供 title 属性,如,title = "全部展开"。这样用户鼠标悬停到map的链接区域后,可以提醒用户,点击这里可以全部展开、或全部收起整个目录。

    现在,用户点击左栏顶部图像的左半部分,就可以展开整个目录,点击右半部分,就可以收起整个目录。全部展开的运行结果如图 11‑19 所示:

    全部展开图11-19 全部展开

    关于作者

    歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

    如果本教程对您帮助很大,请随意打

    展开全文
  • 描述了一些关于交互式shell和非交互式shell的区别,属于概念的东西。
  • 基于情感、动机的语言交互是影响人—虚拟角色交互效果的重要因素, 提出了基于云模型的人—虚拟角色语言交互模型。...算法分析和交互合成效果表明, 所提方法能够刻画交互双方对语言信息理解的模糊和随机
  • androidjs交互的三种方式,让你可以更加方便的控制数据的传输,增加安全
  • Pygal让图表具有交互性:如果你将鼠标指向该图表中的任何条形,将看到之相关联的数据。 问题: 实际操作时,发现鼠标移到图片上没有显示数据。 原因: 书本 15.4.1安装Pygal 中介绍的安装语句安装的Pygal版本太老...

    根据《Python编程从入门到实践》15.4.6 绘制直方图:

    Pygal让图表具有交互性:如果你将鼠标指向该图表中的任何条形,将看到与之相关联的数据。

    问题:
    实际操作时,发现鼠标移到图片上没有显示数据。

    原因:
    书本 15.4.1安装Pygal 中介绍的安装语句安装的Pygal版本太老,和目前所用的python版本不兼容。

    解决:
    更新Pygal

    pip install --upgrade pygal
    

    更新Pygal更新后的svg文件,实现了交互
    在这里插入图片描述
    或者安装Pygal的时候就不要加版本号,直接cmd输入语句

    pip install pygal
    

    该语句默认匹配最新的版本

    展开全文
  • shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行。在这种模式 下,shell不你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就终止了。  ...

     首先我们需要把bash理解为一种模式,我们不如把这种模式想象成类似于洋葱一样的结构,我们可以一层一层剥开,也就是说我们可以一层一层的进入子shell。就好比我们进入一栋楼,打开一个房间是一个环境,在当前这个房间我们又看到了一个门,当我们打开这个门的时候,我们就已经进入了新的环境,也就是新的bash中。这牵扯到一个父shell和子shell的问题。

     用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。
     在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内 的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
    同时,在我们使用shell的同时,我们应该清楚shell的一些配置文件的存放位置,按照范围来分,可以分为两种:

    (1)全局配置:

    /etc/profile
    /etc/profile.d/*.sh
    /etc/bashrc

    (2)个人配置:

    ~/.bash_profile
    ~/.bashrc

     我们可以根据shell是否是交互式和shell是否是登录式这两个维度,来对shell进行分类。

    交互式shell和非交互式shell(interactive shell and non-interactive shell)

     交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,shell也终止了。
     shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行。在这种模式 下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就终止了。

     举个例子,最常见的交互式shell,就是我们利用虚拟机登录Linux系统时的那个等待登录界面,大概如下图所示:

    系统在等待我们键入登录的用户名和密码,这就是一种交互式shell,而非交互式shell就像我们写的那些很简单的脚本,比如一个脚本展示出:helloworld。这个脚本不需要我们对其进行交互,它就只是很简单的将其脚本中的命令按顺序执行。

    登录式shell和非登录式shell

      登录shell:是需要用户名、密码登录后才能进入的shell(或者通过--login”选项生成的shell)。
    非登录shell:当然就不需要输入用户名和密码即可打开的Shell,例如:直接命令“bash”就是打开一个新的非登录shell,在Gnome或KDE中打开一个“终端”(terminal)窗口程序也是一个非登录shell。
    执行exit命令,退出一个shell(登录或非登录shell);
    执行logout命令,退出登录shell(不能退出非登录shell)。

    交互式登录shell和非交互式登录shell的区别

    交互式登录:(清除掉所有变量,通过文件重新读入)
    (1)直接通过终端输入账号密码登录
    (2)使用“su - UserName”切换的用户
    执行顺序:(影响该shell的配置文件)
    /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile--> ~/.bashrc--> /etc/bashrc

    非交互式登录:(会继承上一个shell的全部变量)
    (1)su UserName
    (2)图形界面下打开的终端
    (3)执行脚本   (当我们执行脚本的时候.我们就已经进入到了一个子shell)
    (4)任何其它的bash实例
    执行顺序:(影响该shell的配置文件)

    ~/.bashrc--> /etc/bashrc--> /etc/profile.d/*.sh

     使用./test.sh或者 bash ./test.sh执行脚本的时候,是开启一个子shell,这个子shell能继承上一个父shell的变量,而这个子shell的变量,随着子shell的退出而消失。当我们用. test.sh 或者source test.sh时,不开启子shell,在当前shell运行,子shell中的所有值都影响当前。

     一般我们对shell进行一些配置的时候,通常都是对~/.bashrc 和/etc/bashrc这两个文件进行一些配置。

    展开全文
  • UI交互性很好的Android studio完整源码
  • Java外部进程交互从精通到陌生

    万次阅读 2020-10-24 11:27:29
    1.什么是进程 现代操作系统运行一个程序的...2.如何进程交互 Process 创建方式 1.使用Runtime Runtime runtime = Runtime.getRuntime(); try { Process exec = runtime.exec(cmdStr); } catch (IOException e) {
  • 为了提高移动交互的可用,进行了用语音声音来增强移动终端菜单交互的研究,首先设计了一个移动终端的声音增强菜单,然后通过相应的视觉菜单的对比实验来研究其是否能提高可用。结果显示,声音增强移动菜单...
  • JSAndroid的交互

    千次阅读 2021-10-29 13:52:10
    一、函数交互 交互模型 1、js调用android原生的代码(不传递参数) 2、js调用android原生的代码(传递参数) 3、android原生调用JS的代码(不传递参数) 4、android原生调用JS的代码(传递参数) 在工程的main...
  • python用户交互、数据类型

    千次阅读 2020-12-20 05:50:49
    一、用户交互1.什么是用户交互:程序等待用户输入一些数据,程序执行完毕反馈信息。2.如何使用在python3中使用input,input会将用户输入的如何内容存为字符串;在python中分为两种,raw input和input,raw input和...
  • 用户交互设计10个可用指标

    千次阅读 2018-10-17 17:46:16
    用户交互设计10个可用指标 1.系统状态可视化(及时反馈) 系统应该通过在有意义的时刻做恰当的反馈,让用户总是能了解到将要发生什么。 2.使系统符合真实的世界(贴切环境) 系统应该说用户的语言,比如...
  • Chapter5 交互设计测试评估 第一章 为什么要开展测试评估 用户测试:请目标用户使用产品来完成任务,观察并记录用户使用产品的整个过程. 用户测试的定义:也被称为产品可用测试,指特定的用户在特定的使用...
  • Android开发之Webview中原生JS交互

    千次阅读 2018-10-14 21:45:50
    文章目录概述使用场景交互方式Java调用JS代码JS调用Java代码总结 ...交互场景 计算密集型场景 对UI复杂度要求不高的场景 以上可见,《王者荣耀》断然不会使用混合开发的,其实谷歌举了两个最适合的...
  • 浅析mysql交互式连接&非交互式连接

    千次阅读 2018-07-02 17:15:18
    https://www.jb51.net/article/81462.htmhttps://blog.csdn.net/andypan1314/article/details/77930677(1)interactive_timeout: 服务器关闭交互式连接前等待...两者生效取决于:客户端是交互或者非交互的连接。在交...
  • 交互设计的十大可用原则

    千次阅读 2020-06-10 14:42:59
    交互设计领域有丰富的理论沉淀,最著名和经典的理论当属人机交互大师雅各布·尼尔森(Jakob Nielsen)博士在1995提出的尼尔森十大可用原则(Jakob Nielsen’s Ten Usability Heuristics),该理论是针对PC端交互...
  • 第1章 人机交互与用户体验

    千次阅读 2021-06-09 14:30:02
    文章目录1.1 人机界面人机交互1.2 人机界面的发展1.3 人机交互的重要1.4 最佳用户体验1.5 实现最佳用户体验的基本步骤1.6 人机交互与软件工程1.7 人机交互技术的发展趋势 课程介绍:从用户的角度来改善用户和...
  • Qt中UI线程子线程的交互

    千次阅读 2020-03-29 00:27:48
    但我们的应用程序一般是多线程的,势必就涉及到UI线程子线程的交互。 下面介绍常用的UI线程子线程交互方式,并贴上完整Demo代码。 1.Qt中几种常见的多线程交互的操作 Qt中提供了一些线程安全的方法来让我们...
  • python交互模式是什么

    千次阅读 2021-02-03 12:46:45
    Python交互模式在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行...
  • sqlplus的非交互式使用

    千次阅读 2015-06-02 10:59:29
    sqlplus的两种非交互式使用方式 1 通过外部命令文件 2 通过标准输入 利用管道做后续处理 需要注意的地方 一个简单的脚本1 sqlplus交互界面存在的问题sqlplus是ORACLE数据库的最重要的官方命令行客户端软件,是DBA的...
  • 本文分享自华为云社区《昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!》,作者:昇腾CANN 。 近日,CVPR 2022放榜,基于CANN的AI论文《Interactive Image Synthesis with Panoptic Layout Generation》强势...
  • AnimateCC在图形中添加交互性代码的方式有两种:1. 通过对图层中的任意帧添加动作实现交互。2. 通过添加代码片段实现交互。 通过添加动作实现交互:通过添加动作实现交互很简单,以下面的现有canvas绘图为例: ...
  • 交互界面是什么

    千次阅读 2021-06-26 10:39:00
    什么是交互界面交互界面是人和计算机进行信息交换的通道,用户通过交互界面面向计算机输入信息、进行操作,计算机则通过交互界面向用户提供信息,以供阅读、分析和判断。交互界面的发展命令语言用户界面在我们还比较...
  • 曾经写过“交互式shell和非交互式shell、登录shell和登录shell的区别”,但那时理解相对更浅一些,现在多了一点认识,把这篇文章稍微完善一下吧。 交互式shell和非交互式shell、登录shell和登录shell的区别。...
  • Siebel 8.1 IE高交互框架插件

    热门讨论 2012-04-09 14:46:52
    Siebel IE高交互框架插件,Siebel 版本为8.1,如果将此文件放在C:\Windows\Downloaded Program Files\目录下,并且执行REGSVR32 **.dll ,则不需要在进入Siebel时再安装此插件,主要原因为这个dll经常会烂掉。
  • #发现你#小说的交互——交互故事

    千次阅读 2015-08-16 22:32:55
    【发现】  我喜欢看小说。应该说相较于其他媒体,如电影、电视剧、动漫等等,我更喜欢读小说。所以看过很多很多小说,有的过眼云烟,匆匆看完匆匆忘记;有的自心底感触,因...一部小说,其实是作者读者之间的交互
  • OpcEnum交互式用户不可选解决办法

    千次阅读 2021-05-20 16:47:18
    三、验证OpcEnum交互式用户是否可选 一、使用超级管理员打开命令提示符(CMD) 二、重新注册OpcEnum.exe ①首先检查OpcEnum.exe存在哪个文件夹; ②如果OpcEnum.exe存在System32目录下,则在CMD中执行以下命令...
  • 第九章 可用分析和评估 1.可用和可用工程(第二版 P225) 可用定义:  可用是指特定的用户在特定的环境下使用产品并达到特定目标的效力、效率和满意的程度。 可用五个方面:  有效(effective)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,189,198
精华内容 475,679
关键字:

交互性与非交互性