【问题标题】:Center a movie clip on a child mc's position for map locations将影片剪辑居中于子 mc 的位置以获取地图位置
【发布时间】:2012-05-08 10:00:36
【问题描述】:

我有一个名为“map”的地图影片剪辑,其中包含一堆建筑剪辑。每个建筑物都是一个可以单击的影片剪辑。我需要将地图集中在该单击的项目上。我怎样才能做到这一点?

//This doesn't make the map move where i need it to
function moveMap(childmc:String):void {
    Tweener.addTween(themap, {x:themap[childmc].x, time:1, transition:"easeOutCubic"});
    Tweener.addTween(themap, {y:themap[childmc].y, time:1, transition:"easeOutCubic"});
}

任何帮助都会很棒,一直在寻找几个小时。

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    查看您的代码,您似乎正在尝试将父 MC 补间到嵌套在其中的 MC 的位置。如果这不是你想要做的,也许 {this[childmc].x, this[childmc].y} 在描述你补间的对象中可能会有所帮助?此外,时间和过渡应该在该对象内部还是外部?我是 Tweensy 用户,所以我不确定,但我觉得不合适。

    【讨论】:

    • 补间代码绝对正确,不正确的是地图根本没有以子剪辑为中心。它移动地图,但不在子剪辑的中心。
    • 好的,您的代码绝对正确。提醒我为什么你又遇到问题了?
    【解决方案2】:

    试试这样的:

    function objClick(e:MouseEvent):void{
        var target_x = STAGE_WIDTH/2 - e.target.x;
        var target_y = STAGE_HEIGHT/2 - e.target.y;
    
        TweenLite.to(map_mc, 1, {x: target_x, y: target_y})
    }
    

    抱歉,编写的代码与您的示例有很多不同,但我认为这种方式更好。

    [编辑] 我测试了这段代码,它工作正常。可点击的影片剪辑位于另一个名为“map_mc”的影片剪辑中。 STAGE_WIDTH/HEIGHT 是我的舞台尺寸,但您可以添加到您的视口。

    【讨论】:

    • 我刚才试过了——但是当我点击子剪辑时,父剪辑(地图)会离开屏幕。顺便说一句,我在中心为孩子和父母(地图)设置了注册点。基本上我需要能够单击子剪辑,并让父剪辑补间,以便单击的剪辑位于视口的中心。
    • 已编辑 - 现在看看你是否能实现你想要的。
    • 再次感谢,周末愉快,如释重负!
    猜你喜欢
    • 2011-01-22
    • 2012-06-07
    • 2011-11-02
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多