打印

[AS3] AS3 动态文本的拖动与旋转

好久没发过帖子了。
http://flash.9ria.com/thread-42364-1-1.html这个帖子做的例子
复制内容到剪贴板
代码:
package
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFormat;
    /**
    * ...
    * @author FLASH023
    */
    public class Main extends Sprite
    {
        private var now_box:TextBox;
        public function Main():void {
            var _p:int = 12;
            while (_p--) {
                var _box:TextBox  = new TextBox ();
                _box.x = 100+Math.random () * 550;
                _box.y = 100 + Math.random () * 400;
                _box.rotationZ = Math.random () * 360;
                _box.addEventListener (MouseEvent.CLICK, onClick);
                addChild (_box);
            }
        }
        private function onClick(_evt:MouseEvent ):void {
            var _box:TextBox = _evt.target as TextBox;
            if (_box) {
                now_box&&(now_box.focus  = false);
                _box.focus = true;                
                now_box = _box;
            }
        }
    }
    }
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    class TextBox extends Sprite {
        private var r_btn:Sprite;
        private var p_txt:TextField;
        public function TextBox():void {
            p_txt = addChild (new TextField) as TextField ;
            p_txt.autoSize = "left";
            p_txt.text = "测试文本";
            p_txt.selectable = false;
            p_txt.mouseEnabled = false;
            p_txt.x = width * -.5;
            p_txt.y = height * -.5;
            p_txt.borderColor = 0x333399;
            r_btn = addChild (new Sprite) as Sprite;
            r_btn.graphics.beginFill (0x333399,.6);
            r_btn.graphics.drawCircle (0, 0, 5);
            r_btn.x = p_txt.width * .5;
            r_btn.y = -p_txt.height * .5;
            r_btn.visible = false;
            r_btn.buttonMode = true;
            addEventListener (MouseEvent.MOUSE_DOWN, mouseDown );
        }
        private function mouseDown(_evt:MouseEvent ):void {
            if (_evt.target != r_btn) {
                startDrag ();
            }else{
                addEventListener (Event.ENTER_FRAME, startRing );
            }
            stage.addEventListener (MouseEvent.MOUSE_UP, mouseUp);
        }
        private function startRing(_evt:Event):void {
            rotationZ = Math.atan2 (parent.mouseY - y, parent.mouseX - x) / Math.PI * 180;
        }
        private function mouseUp(_evt:MouseEvent ):void {
            stopDrag();
            removeEventListener (Event.ENTER_FRAME, startRing );
            stage.removeEventListener (MouseEvent.MOUSE_UP, mouseUp);
        }
        public function set focus(_b:Boolean):void {
            r_btn.visible = _b;
            p_txt.border = _b;
        }
    }
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
本帖最近评分记录
  • libins 威望 +1 原创内容 2009-12-28 09:32
大波妹,我顶你哈。你换头像了。我还是认得出来你哈。你化成灰了我都知道哦
想当年几年前就在这里见过大波妹了。原来还是一小孩儿的头像呢。现在都当版主啦。GX。天地会也是8000+分的元老了。真是两边都不耽误呀。还老是坐沙发。真的非常佩服你啊
以后和你混啦

[ 本帖最后由 aseer 于 2009-12-28 02:49 编辑 ]

TOP

谢谢楼上
少壮不努力,老大搞IT!从小不学好,长大编程序! -_-#

TOP

冒昧问下大波妹在什么公司上班?

回帖的时间真多。
www.vsdevelop.com

TOP

大波妹从来不去水区,确实是只专注于技术的高人啊...
蓝色理想真俏巴

TOP

回复 5# menuhinlove 的帖子

小学老师

TOP

顶一下!顺便学习一下。。
Let's go home!

TOP

没有用到 CS4 的 textFormat 那个库啊?

TOP

支持flash023大哥,其实这个帖子解惑了我最大的一个疑问.
哈哈!

TOP

TOP