定制能够随意拖动的MIAW

2016-03-18 15:55 4 1 收藏

下面是个超简单的定制能够随意拖动的MIAW教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - 设计软件 】


  定制能够随意拖动的MIAW

   我们经常想要创建一个具有以下属性的MIAW(Movie In A Window,窗口中的影片):

   1. 没有标准的标题栏。

   2. 在以窗口模式运行的放映机中,能够被用户在舞台范围内外自由拖动。

   看起来好像很容易,可是许多开发者发现,即使给windowType指定了有效值,最终的MIAW仍然带有标题栏,且仅能在舞台范围内拖动,或者虽然没有标题栏,但位于舞台范围内,且根本无法拖动。作为一个Director开发者,你也许根本不需要这些功能(因此也不需要知道windowType究竟该如何取值),你也许一直苦于无法算出给windowType赋予何值才能够得到满意的结果。本文阐述的技巧很好地解决了这一问题,将其用在Director程序中非常容易。此外,这项技巧已经通过测试,在MAC和PC上都能够工作的很好。

   做法很简单,只需两步:

   1. 选择合适的windowType值,此处必须令windowType=2。

   2. 给一个“伪造”的标题栏添加Lingo代码,以便鼠标能够随意拖动这个MIAW。

   为什么在这个MIAW中,必须令windowType=2呢?简单地说,是因为一个取值为2的“窗口”实际上根本就不是窗口,而是一个对话框。真正的窗口(windowType取其他的有效值)必须在当前舞台环境的父窗口边界内,这不是Director的特性,这是所有视窗操作系统的一个基本概念。通过令windowType=2,实际上创建了一个“对话框中的影片”,而对话框能够存在于桌面上的任何地方,且与创建它的主窗口的大小和位置都没有关系。因此只要能够在预期的位置用Lingo在一个对话框(windowType=2)中打开影片,那么随后就可以在运行时用Lingo改变它的位置。

   首先,在MIAW的“热点”上添加相应的Lingo代码,以便当鼠标按下时跟踪其位置,并相应地调整窗口(实际上是对话框)的rect值。

   将下面的代码粘贴到Script Window中,并确保将其设置成Movie Script。

on DragWindow dWhichMIAW
tell the stage
set mPt to point ( the mouseH , the mouseV )
set origRect to the rect of dWhichMIAW
repeat while the mouseDown
set newPt to point ( the mouseH , the mouseV )
set deltaPt to newPt - mPt
set newRect to offset (origRect, getAt (deltaPt, 1 ), ?
getAt (deltaPt, 2 ))
set the rect of dWhichMIAW to newRect
tell dWhichMIAW to updateStage
updateStage
end repeat
end tell
end

   正如你看到的那样,这个带有参数(dWhichMIAW)的剧本被MIAW引用,同时根据传递的参数值运行。可是从哪里调用剧本呢?很简单,你的MIAW看起来可能像下图那样,注意我是如何使用一个Director中的Shape演员来“伪造”标题栏的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/shejiruanjian/)
   其次,将下面的剧本放在“伪造”的标题栏上。

global gVideoPlayer
- th(图老师整理)e global reference to your MIAW

on mouseDown
repeat while the mouseDown
tell the stage to DragWindow(gVideoPlayer)
end repeat
end

   这就是要做的一切。当你打开这个MIAW时,没有标题栏,点击“伪造的标题栏”能够在屏幕上任意拖动MIAW而不受舞台尺寸和边界的限制。

   虽然这项技巧很简单,但在Director开发中,确实为定制能够随意拖动的影片打开了创造性的大门。

来源:http://www.tulaoshi.com/n/20160318/1888535.html

延伸阅读
标签: 网店
淘宝定制的可以退货吗 如果买家购买的时候,宝贝页面显示卖家承诺“7天无理由退货”,买家在收到商品要求7天无理由退货的时候,卖家说商品是根据买家的需求特殊定制的,故而不支持退货? 当买卖双方出现了争议的时候,面对这样的纠纷,卖家们知道该怎么解决吗? 淘宝定制产品可以退货吗?如果买家购买的商品是定制的,但是卖家宝...
标签: 衣柜 家具
衣柜的进深   大衣柜的进深一般为55—60公分; 柜门距   平开的柜门宽度在45—60公分之间为最佳,推拉柜门宽度在60—80公分之间为最佳; 衣柜的高度   悬挂大衣的高度140公分足够用; 最长的睡袍悬挂高度也不到140公分,长羽绒服130公分,西服收纳装袋后也就120公分长。以前有设 计版本中说这个高度应该在140—16...
标签: Web开发
html head meta http-equiv="Content" content="text/html;chartset=utf-8" titletest drag/title style type="text/css" !-- .drag { width:100px; height:100px; position:absolute; left:10px; top:10px; background-color:blue; } -- /style script type="text/javascript" !-- function drag(target,event) {    var deltaX = e...
标签: Web开发
发帖时无法插入可运行代码? 以下为程序代码: 这个是可以拖动的层 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: Web开发
!-- /* ---------------------------------------------------------------------- JTrackBar 初始日期:2007/07/11 Author:xlingFairy Blog:http://xling.blueidea.com 目前只能生水平的,垂直的还没有写。 设计功能: 当改变时,触发事件onChange,并传当前值。 2007/07/12 加入拖动功能。 2007/07/13 加入皮肤功能 未做功能...

经验教程

755

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部