本文共 1671 字,大约阅读时间需要 5 分钟。
这期文章中的问题虽然比较少,但是综合性较强。
系列文章目录:入门实战第三弹——连连看小游戏App
dir函数在APP Designer中依旧可以用,例如我们想要获得名为’图片‘文件夹中的所有jpg图片的链接,则可以通过以下步骤:
path=‘图片文件夹的链接地址’;
例如: path=‘E:\MATLAB\R 2019b\bin\连连看\图片’;通过dir函数获取jpg图像的所有信息
picInformation=dir(fullfile(path,’*.jpg’));提取其中第i张图的名称并合成完整路径:
picPath=[path,’’,picInformation(i).name];这个问题的提出是因为连连看足足有6x8=48张图片
↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓ ↓↓↓↓↓↓满足以下两个条件的图片组在被点击时很难确定其序号
这时候我们很轻易地就有一个想法,我们为什么不把图片做成按钮?要实现这个功能我们便考虑使用UIimage的ImageClicked回调,但是有一个问题,就是图片量很大,我们就需要批量创建图片,但是批量创建的图片需要写在startupFcn中,startupFcn中创建的控件无法直接为其创立回调,这时候又要用到问题10中的虚控件,创造一个不可视的UIimage控件增添回调,并让批量创建的控件与其共享一个回调,步骤如下:
一 在startupFcn中批量创建控件并赋予属性.
三 为虚控件增添回调并让批量创建控件与其共享回调
.set(app.drawPicHdl(i,j),'ImageClickedFcn',createCallbackFcn(app, @VirtualImageClicked, true))
这时候我们观察一下创建的回调的结构:
这仨属性能够用来分开哪个图是哪个图,我Tag其实用的比较多,但是如果你的序号形式为数对的话,会发现,UserData真香。
四 为控件增添UserData属性
就多写一行呗,美滋滋event.Source.UserData
了解到到底点击了哪个图片了:
当UIAxes在UIimage或其他控件下面时,画出的图像也是在UIimage或其他控件下面,当UIAxes在他们上面时 ,便会出现以下状况:
相信认真看完这篇文章的你已经有了还原该mlapp文件的能力,在这里提供m版和mlapp版的连接:
MATLAB 连连看小游戏m文件链接: MATLAB 连连看小游戏mlapp文件链接:转载地址:http://odls.baihongyu.com/