`
jayo
  • 浏览: 16487 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

判断sprite是否出界 出界后删除sprite

阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Canvas x="29" y="145" width="661" height="362">
        <mx:Canvas id="canvas_1" x="118" y="30" width="457" height="117" backgroundColor="#F0E6E6">
            <mx:Image id="hair" x="150" y="32" source="../images/hair_1_0.gif"/>
        </mx:Canvas>
        <mx:Canvas id="canvas_2" x="118" y="175" width="457" height="185" borderColor="#B2BCC3" backgroundColor="#B1D6F6" horizontalScrollPolicy="off" verticalScrollPolicy="off">
        </mx:Canvas>
    </mx:Canvas>
    <mx:Script>
        <![CDATA[
            import mx.controls.Image;
            import mx.core.DragSource;
            import mx.managers.DragManager;
            import mx.events.DragEvent;
            private var sp_1:Sprite;
            private var sp_2:Sprite;
            private var del_per:Number=0.3;
            private var del_alpha:Number = 0.1;      
          
            internal function init():void {
              
                sp_1 = new Sprite();
                sp_1.graphics.lineStyle(3,0x243435,1);
                sp_1.graphics.beginFill(0x556433,0.5);
                sp_1.graphics.drawCircle(40,40,40);
                sp_1.graphics.endFill();
                this.canvas_2.rawChildren.addChild(sp_1);
                sp_1.addEventListener(MouseEvent.MOUSE_DOWN,spDownHandler);
            }
        /***=========移动sprite============****/  
        private function spDownHandler(e:MouseEvent):void {
            sp_1.startDrag();
            sp_1.addEventListener(MouseEvent.MOUSE_UP,spUpHandler);
            sp_1.addEventListener(MouseEvent.MOUSE_MOVE,spMoveHandler);
        }
        private function spMoveHandler(e:MouseEvent):void {
            var sp:Sprite = Sprite(e.currentTarget);
            /**横向判断**/
            if(sp.x<(0-sp.width+sp.width*del_per)) {
                sp.alpha=del_alpha;
            } else if(sp.x>(this.canvas_2.width-sp.width*del_per)) {
                sp.alpha=del_alpha;
            } else if(sp.y<(0-sp.height+sp.height*del_per)) {/**纵向判断**/
                sp.alpha=del_alpha;
            } else if(sp.y>(this.canvas_2.height-sp.height*del_per)) {
                sp.alpha=del_alpha;
            } else {
                sp.alpha=1;
            }
        }
        private function spUpHandler(e:MouseEvent):void {
            var sp:Sprite = Sprite(e.currentTarget);
            sp_1.stopDrag();
            sp_1.removeEventListener(MouseEvent.MOUSE_UP,spUpHandler);
            sp_1.removeEventListener(MouseEvent.MOUSE_MOVE,spMoveHandler);
            if(sp.alpha<=del_alpha) {
                sp.graphics.clear();
                sp = null;
            }
        }

        ]]>
    </mx:Script>
</mx:Application>


分享到:
评论

相关推荐

    css sprite示例源码

    在网页设计中,特别是在响应式设计中,CSS Sprite被广泛使用。本示例源码将深入探讨这一技术及其应用。 一、CSS Sprite基本原理 CSS Sprite的核心思想是将多个小图像合并到一张大图(称为Sprite图)中,然后通过CSS...

    android引入的Sprite类

    Sprite类在Android开发中主要被用于游戏开发或者动画制作中,它是Android对2D图形的一种抽象,通常代表一个可移动或可交互的图像元素。在Android的游戏中,Sprite经常用来表示角色、道具或其他动态显示的对象。这个...

    角色1.sprite3

    角色1.sprite3

    Sprite触摸机制

    游戏引擎需要将这个触摸事件与屏幕上的Sprite关联起来,判断用户是否触碰到了特定的Sprite。这通常通过碰撞检测来实现,比如矩形碰撞、圆形碰撞或自定义形状的碰撞。 2. **触摸响应**:一旦检测到触摸事件与某个...

    rnsprite是一个reactnative组件用于从spritesheets创建动画

    然后在代码中引用这个组件,设置相应的props,如`source`(spritesheet的源文件)、`frameWidth`和`frameHeight`(单个帧的宽度和高度)、`frameCount`(动画帧数)以及`loop`(是否循环播放)等。例如: ```jsx ...

    J2ME Sprite精灵类人物移动

    在Java 2 Micro Edition (J2ME)平台上开发游戏时,常常会遇到需要处理动态对象移动的情况,这就是“精灵”(Sprite)的概念。本篇主要探讨如何利用J2ME的Game包中的Sprite类来实现一个角色在上下左右四个方向上的...

    Css Sprite

    3. **缓存利用**:用户访问过包含Sprite图的页面后,浏览器会缓存这张大图,再次访问时无需重新下载。 4. **易于维护**:更新或添加图标时,只需修改Sprite图和相应的CSS,而无需改动HTML结构。 **三、CSS Sprite的...

    mnist_10k_sprite

    《MNIST数据集与Sprite图像理解》 在深入探讨MNIST数据集及其Sprite图像之前,首先需要理解什么是MNIST。MNIST(Modified National Institute of Standards and Technology database)是机器学习领域一个经典的手写...

    Asprite Mac版v1.6+

    Asprite是一款专为Mac平台设计的专业2D像素画创作软件,其最新版本为v1.6。这款软件以其简洁的界面、强大的功能和高效的使用体验而受到广大像素艺术家的青睐。在本文中,我们将深入探讨Asprite的主要特点、功能以及...

    typeSprite工具JSON 包

    "TypeSprite工具JSON包"是一种专门用于处理图形精灵(Sprite)的工具,它采用JSON格式来存储和组织精灵数据。在游戏开发、网页设计以及移动应用界面制作中,精灵图是一种常见的优化资源加载和减少HTTP请求的技术。...

    Android Sprite

    在Android开发中,"Sprite"通常指的是动画精灵,它是一种在2D游戏中广泛使用的图形技术。Sprite用于创建连续的帧序列,以实现动画效果。在Android中,我们可以通过Bitmap和Canvas来实现Sprite的绘制,或者使用更高级...

    CSSSprite示例代码

    2. **缓存利用**:用户访问过使用Sprite技术的网站后,精灵图会被浏览器缓存,再次访问时加载更快。 3. **易于维护**:修改小图无需替换整个文件,只需调整CSS即可。 **三、实现步骤** 1. **设计与制作**:将所有...

    css sprite 自动生成工具

    这些工具通常提供简单的界面,只需要上传图片,就能自动生成CSS和合并后的图片。开发者只需要将生成的代码引入到项目中,就可以快速实现CSS Sprite的效果。 总结来说,"css sprite 自动生成工具"是Web开发中提高...

    前端开源库-css-sprite-loader

    CSS Sprite Loader就是一个这样的Loader,它在Webpack构建过程中,自动将CSS文件中的背景图片路径替换为合并后的Sprite图像路径。 - **转换过程**:当Webpack遇到使用CSS Sprite Loader处理的CSS文件时,它会扫描...

    ios7 spritekit 游戏demo

    在iOS开发领域, SpriteKit 是苹果推出的一款强大的2D游戏引擎,特别适合用于构建轻量级到中等复杂度的游戏。随着iOS 7的发布,SpriteKit得到了显著的提升和优化,为开发者提供了更为丰富的功能和更流畅的性能。本...

    spritejs微信小程序版

    【SpriteJS微信小程序版】是专门为微信小程序设计的一个强大的图形渲染库,它旨在提供高效、易用的2D图形处理能力。这个版本的SpriteJS针对微信小程序进行了优化,以适应其特有的开发环境和性能需求。 1. **Sprite...

    SpriteKit物理系统Demo

    SpriteKit是苹果公司开发的游戏引擎,它为iOS、macOS和tvOS等平台提供了一套强大的2D游戏开发工具。这个“SpriteKit物理系统Demo”是开发者为了展示如何在SpriteKit环境中实现物理模拟而创建的一个实例。让我们深入...

    实例7---android 版Sprite代码

    在Android开发中, Sprite是一种常见的2D动画形式,它由一系列连续的静态图像组成,用于创建动态效果,如游戏中的角色动作或UI元素的动画。本实例“实例7---android 版Sprite代码”将深入探讨如何在Android应用程序...

    cocos2d-x学习笔记(2)--addSprite.rar

    2. 调用`addSprite`:创建好精灵后,我们可以使用`addChild`或`addSprite`方法将其添加到场景中。两者的主要区别在于`addSprite`可以接受额外的参数,如精灵的位置、旋转角度等。例如,`addChild(sprite, zOrder, ...

    Shadero Sprite - 2D Shader Editor 1.9.3

    Shadero Sprite is a real time node-based shader tool for Unity 5, 2017 and 2018 NEW! Forum : https://forum.vetasoft.store/ Discuss with us about Shadero Sprite and more ! Description Shadero Sprite...

Global site tag (gtag.js) - Google Analytics