动作脚本 2 上的平移和缩放舞台
Posted
技术标签:
【中文标题】动作脚本 2 上的平移和缩放舞台【英文标题】:Pan and Zoom stage on Action Script 2 【发布时间】:2017-08-07 05:16:45 【问题描述】:我正在尝试在动作脚本 2 上创建缩放和平移选项。我想在舞台上而不是在影片剪辑上进行。我已经完成了基本的编码,但我想创建拖动和缩放选项。任何帮助将不胜感激。
这是我的代码。我在舞台上有两个电影剪辑放大和缩小以放大和缩小舞台
zoom_mc.onPress = function()
var zinxpos:Number;
var zinypos:Number;
zinxpos=zoom_mc._x;
zinypos=zoom_mc._y;
zoom_mc.onEnterFrame = function()
Mouse.hide();
this._x = _root._xmouse;
this._y = _root._ymouse;
_root.onMouseDown = function()
this._xscale+=10;
this._yscale+=10;
zoomout_mc.onPress = function()
zoom_mc._x=zinxpos;
zoom_mc._y=zinypos;
zoomout_mc.onEnterFrame = function()
Mouse.hide();
this._x = _root._xmouse;
this._y = _root._ymouse;
_root.onMouseDown = function()
this._xscale-=10;
this._yscale-=10;
【问题讨论】:
更好的选择是使用与舞台大小相同的影片剪辑。使用 MC 作为所有内容的容器,然后将舞台大小的 mask 放在它上面(新层)。现在您可以扩大内容 MC 的大小(显示为放大/放大),或者您可以更改内容 MC 的 x 或 y 位置以模拟平移。内容 MC 仅通过蒙版可见(因为蒙版是画布/舞台大小),这将模拟您想要实现的缩放/平移效果... 【参考方案1】:这应该可以完成工作。
var $stage = this;
var isDragging = false;
var mouseDownX = 0;
var mouseDownY = 0;
$stage.onEnterFrame = function()
if(isDragging)
$stage._x += $stage._xmouse - mouseDownX;
$stage._y += $stage._ymouse - mouseDownY;
$stage.onMouseDown = function()
isDragging = true;
mouseDownX = $stage._xmouse;
mouseDownY = $stage._ymouse;
$stage.onMouseUp = function()
isDragging = false;
zoom_mc.onPress = function()
$stage._xscale += 10;
$stage._yscale += 10;
zoomout_mc.onPress = function()
$stage._xscale -= 10;
$stage._yscale -= 10;
【讨论】:
以上是关于动作脚本 2 上的平移和缩放舞台的主要内容,如果未能解决你的问题,请参考以下文章
舞台上的 Adobe Animate CC Canvas 鼠标动作滞后且断断续续
用flash CS4 as3.0编程实现元件以舞台中心为中心点缩放中遇到的问题,求指教。