动作脚本 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 的 xy 位置以模拟平移。内容 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 上的平移和缩放舞台的主要内容,如果未能解决你的问题,请参考以下文章

需要关闭所有在舞台上打开的弹出窗口。动作脚本 3

舞台上的 Adob​​e Animate CC Canvas 鼠标动作滞后且断断续续

用flash CS4 as3.0编程实现元件以舞台中心为中心点缩放中遇到的问题,求指教。

KineticJS:如何缩放舞台?

flash as3.0里怎样修改元件的缩放中心点,让缩放的中心点一直在舞台中心位置?

KineticJS - 将舞台缩放到视口