zoukankan      html  css  js  c++  java
  • 对象相交检测示例

    在flex编程中我们有时需要判断两个对象是否相交使用obj1.hitTestObject(obj2)方法。

    下面给出一个具体的示例。

    代码
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"   layout="absolute" borderColor="#FFFFFF" >   
        
    <mx:Script>
            
    <![CDATA[
                import mx.controls.*;
                import mx.core.*;

                private var lines :UIComponent =  new UIComponent ();
                private var lockX:int=0;
                private var lockY:int=0;
                private var isMove:Boolean=false;

                private function Draw():void{
                    
                    lines.id="line_1";
                    lines.graphics.lineStyle(2,0x0099ff,1);
                    lines.graphics.moveTo(100,100);
                    lines.graphics.lineTo(300,300);
                    stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e:MouseEvent){
                        var obj:UIComponent=UIComponent(e.target);
                        if(e.target is UIComponent && obj.id=="line_1")
                        {
                            lockX=mouseX-lines.x;
                            lockY=mouseY-lines.y;
                            isMove=true;
                        }
                    });
                    stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
                    stage.addEventListener(MouseEvent.MOUSE_UP,function (e:MouseEvent)
                    {
                        isMove=false;
                    });
                    
                    addElement(lines);
                }
                            
                private function mouseMoveHandler(event:MouseEvent):void {
                    if(isMove)
                    {
                        lines.x=this.mouseX-lockX;
                        lines.y=this.mouseY-lockY;
                        if(lines.hitTestObject(myCanvas))
                        {
                            lblMiddle.text="进来了";
                        }
                        else
                        {
                            if(lblMiddle.text=="进来了")
                            {
                                lblMiddle.text="出去了";    
                            }
                        }
                    }
                }
            
    ]]>
        
    </mx:Script>
        
        
    <mx:Canvas id="myCanvas" x="200" y="200" width="100" height="100" alpha="0.5" backgroundColor="0xff0000"></mx:Canvas>
        
    <mx:Button x="20" y="20" label="画线" click="Draw()"/>
        
    <mx:Label x="300" y="300"  width="400" height="200" fontSize="72" color="0xFF0000" id="lblMiddle"/>

        
    </mx:Application>

     测试点与对象是否相交。

    myCanvas.hitTestPoint(x,y,true)

    myCanvas目标对象。

  • 相关阅读:
    tomcat目录简介
    静态链接库、动态链接库
    查看软、硬raid信息的方法
    linu流量监控
    EXT格式误删除恢复
    linux下securetty文件
    linux下快速删除大量文件
    linux路由配置负载均衡
    python代码 构建验证码
    分布式系统架构
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1714970.html
Copyright © 2011-2022 走看看