flash AS2地图缩放类实现代码

 代码如下 复制代码

stop();

var DefaultX = 0;
var DefaultY = 0;
var DefaultValue = true;
var _C = mapMC.Content;
_C._alpha = 0;

_RW = Stage.width;
_RH = Stage.height;
_MW = mapMC._width;
_MH = mapMC._height;

var coordinate:XML = new XML();
coordinate.ignoreWhite = true;
coordinate.load("coordinate.xml");
coordinate.onLoad = function(success)
{
    list = coordinate.childNodes[0].childNodes;
    for (g = 0; g < list.length; g++)
    {
        var t = mapMC.attachMovie("arrow", "a" + g, g + 1);
        t.angle = g * ((Math.PI * 2) / numOfBalls);
        t._x = (list[g].attributes.x - (t._width - 30)) * 4;
        t._y = (list[g].attributes.y - (t._height - 7)) * 4;
        t.swapDepths(-g);
        ContentShow(g);
    }
};

function ContentShow(num)
{
    var Vlist = coordinate.childNodes[0].childNodes[num];
    mapMC["a" + num].onRollOver = function()
    {
        this.gotoAndPlay(2);
        this.swapDepths(1);
        this._y = this._y - 4;
        new mx.transitions.Tween(_C, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, .5, true);
        _C._x = this._x;
        _C._y = this._y - 120;
        _C._Info.text = Vlist.attributes.alt;
    };
    mapMC["a" + num].onRollOut = function()
    {
        this.gotoAndPlay(1);
        this.swapDepths(-g);
        this._y = this._y + 4;
        new mx.transitions.Tween(_C, "_alpha", mx.transitions.easing.Regular.easeOut, 100, 0, .5, true);
    };
}

mapMC.onMouseDown = function()
{
    this.startDrag(false,0,_RH - _MW,-_MW + _RW,0,_RW);
    //计算当前MC在画布的中心点位置。
    DefaultX = this._x + (_RW / 2);
    DefaultY = this._y + (_RH / 2);
};
mapMC.onMouseUp = function()
{
    stopDrag();
};

var myListener:Object = new Object();
myListener.onMouseWheel = function(delta)
{
        with (mapMC){
        var omx = _xmouse, omy = _ymouse;
        _xscale += delta;
        _yscale += delta;
        _x -= omx * delta / 100;
        _y -= omy * delta / 100;
        }
        _MW = mapMC._width;
        _MH = mapMC._height;
};
Mouse.addListener(myListener);

虽然求得了当前MC的中心点位置,分别为:DefaultX,DefaultY。但是在逻辑上就一直想不通,怎么以中心点布置当前MC。
Code片段:

 代码如下 复制代码

DefaultX = this._x + (_RW / 2);
DefaultY = this._y + (_RH / 2);

所以最后该地图的放大缩小是针对MC整体大小中心点缩放的,效果不佳。
Code片段:

 代码如下 复制代码

mapMC._x = -(mapMC._width / 2) + (_RW / 2);
mapMC._y = -(mapMC._height / 2) + (_RH / 2);

由于地图比画布要大很多,如果不以针对鼠标位置缩放,对用户体验不佳。
请问各位路过的,看贴的高手。AS2如何针对MC做鼠标缩放,并增加缓冲效果

实例下载

http://www.111cn.net/down/MapFla.part1.rar 第一部份
http://www.111cn.net/down/MapFla.part2.rar 第二部份

时间: 2024-11-03 00:15:24

flash AS2地图缩放类实现代码的相关文章

mfc-关于MFC自动缩放类代码的使用

问题描述 关于MFC自动缩放类代码的使用 关于MFC自动缩放类代码的使用,使用这个代码,头文件需要插入哪个目录,在主程序里怎么调用? 解决方案 你的"MFC自动缩放类代码"是哪里的代码,请贴出来. 解决方案二: 可以放到和dlg同级的目录,然后添加到你的工程中,之后在dlg的类中就可以用#incldue来引入对应的头文件来使用里面写的东西了 解决方案三: 没用使用方法的代码参考吗.

c-ssh开发DAO类求代码,地图开发

问题描述 ssh开发DAO类求代码,地图开发 求代码,开发链家网,外加地图开发,求指导,求大神,知道地图开发,

php 生成符合google 地图标准xml类sitemap代码

php教程生成符合google 地图标准xml类sitemap代码  mysql教程_connect("localhost","root","root") or die('Database Server Uid or Password Error!');  mysql_select_db('ip') or die('data !');  mysql_query("SET NAMES 'gb2312'");  */  inclu

从Flash到Silverlight进阶教程-用代码来创建动画

从Flash到Silverlight进阶教程 用代码来创建动画 这节里将要讲述一个自定义用户控件最基本的操作,就好象Flash中的MovieClips一样,动态的将其添加到舞台上. 首先你将要看到如何用ActionScript来添加一个MC到舞台中. 让我们来看看在Flash中都做了什么. 新建flash文件 在第一帧添加两个按钮起好实例名称 导入一张图片,以中心注册为MovieClips,将链接标识符设置为"man" 新建立一层命名为"as",添加如下代码 as2

一个屏幕坐标和地图坐标转换的js代码

js|转换 一个屏幕坐标和地图坐标转换的js代码     在开发webgis的时候 在客户端 经常要处理 屏幕坐标和地图坐标的转换关系,特别是现在 web2.0时代,要求ie 交互和展现更加丰富,对坐标转换要求就更多了.因此在项目中写了个 通用的 转换 javascript代码.在实际项目 得到了较好的应用具体代码如下 (需要prototype.js的支持) /**共有三个类 *whpoint 点*whrect 矩形*whcoordchange坐标转换类*/ whpoint=Class.crea

PHP图片等比缩放类SimpleImage使用方法和使用实例分享

 这篇文章主要介绍了PHP图片等比缩放类SimpleImage使用方法和使用实例分享,需要的朋友可以参考下 使用方法示例: 设定宽度,等比例缩放    代码如下: <?php    include('SimpleImage.php');    $image = new SimpleImage();    $image->load('picture.jpg');    $image->resizeToWidth(250);    $image->save('picture2.jpg'

flash as 3.0键盘控制代码

flash as 3.0键盘控制代码 package sxl{//包路径,也就是建一个sxl文件夹,里面放此MainMap.as文件 import flash.display.Sprite;//显示对象容器 import flash.display.MovieClip;//方块需要附加坐标等属性,所以选它 import flash.display.DisplayObject;//不一一加注释了,自己看吧 import flash.text.TextField; import flash.even

数据-百度地图坐标类和理解类问题

问题描述 百度地图坐标类和理解类问题 问题 1.:new BMap.Map(""allmap""{minZoom:8maxZoom:16}) 中的 allmap 是不是特定的: 为什么改过之后就出不来地图?请教 2.: 我想做一个根据中心点 方圆500米 的距离 显示数据库中已有数据的 坐标 解决方案 那个是你容器的id,你要显示在哪个容器就设置哪个容器的id,不是特定的,注意你的js代码要放在dom对象下或者domready事件中,防止找不到对象 你解码得到中心点

asp.net C#图片缩放放大剪切代码

asp教程.net c#图片缩放放大剪切代码 using system; using system.collections.generic; using system.text; using system.io; using system.drawing; using system.drawing.drawing2d; using system.drawing.imaging; namespace wujian.common {     /// <summary>     /// 图片处理类