我的编程空间,编程开发者的网络收藏夹
学习永远不晚

AS3外部类

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

AS3外部类

1,注意事项,外部类只能在本文件中的其他类使用,

2,外部类不要写类修饰符

3,外部类写在包外

 好处是:

       1,可以当做本文件内部类的数据Model,好找.而且看起来更加直观

       2,外部代码无法调用,安全性高.但是缺点也比较明显

例:

   

package com.upupgame.baccarat.player2.game.views.ui.controls.goodpoint{
    import com.greensock.TweenLite;
    import com.greensock.easing.Expo;
    import com.upupgame.baccarat.player2.assets.GameAssets;
             
    import flash.display.DisplayObjectContainer;
    import flash.display.Sprite;
    import flash.geom.Point;
    
    public class PraiseThumbsManager{
        private static var $instance : PraiseThumbsManager;
        public static function get instance() : PraiseThumbsManager{
            if( null == $instance ) $instance = new PraiseThumbsManager();
            return $instance;
        }
        
        private const $MAX_CACHE : uint = 7;
        private var $modelVs : Vector.<PraiseThumbsModel>;
        private var $tweenLife : TweenLite;
        private var $isHandleVs : Boolean = false;          //是否正在操作列表
                 
        public function PraiseThumbsManager(){
            if($instance != null){
                throw new Error("PraiseThumbsManager 已经被设计成为单例!");
            }else{
                $modelVs = new Vector.<PraiseThumbsModel>();
                $instance = this;
            }
        }
        
        public function movePraiseThumb($myContainer : DisplayObjectContainer = null,$startPosition : Point = null,
                                        $rootPosition : Point = null,$isMe : Boolean = false) : void{
            var $myModel : PraiseThumbsModel = getOneModel(myCallBack,$isMe);
            if($myModel != null){
                if($myContainer != null ){
                    $myContainer.addChild($myModel.thumb);
                }else{
                    GameMain.instance.layers.chat.addChild($myModel.thumb);
                }
                if($startPosition != null ){
                    $myModel.thumb.x = $startPosition.x;
                    $myModel.thumb.y = $startPosition.y;
                }
                if($rootPosition != null ){
                    $tweenLife = TweenLite.to($myModel.thumb, 1, { y:($rootPosition.y),x:($rootPosition.x),ease:(Expo.easeInOut), onComplete:$myModel.callBack});
                }
            }else{
                Debug.log("40225.1 Kayer 得不到大拇指模型",Debug.RED);
            }
        }
        
        private function myCallBack( $value : PraiseThumbsModel) : void{
            if($value != null){
                remove($value);
                if($value.isMe){
                    PraiseBridePriceStrap.instance.showAndUpdate(false);
                }
                $value.isIdle = true;
                modelsArrange();
            }else{
                Debug.log("40225.1 Kayer 返回的大拇指模型为Null!",Debug.RED);
            }
        }
        private function remove($value : PraiseThumbsModel ) : void{
            if($value != null && $value.thumb != null){
                if($value.thumb.parent != null){
                    $value.thumb.parent.removeChild($value.thumb);
                }
            }
        }
        
        private function modelsArrange() : void{
            if(!$isHandleVs){
                for(var $index : int = 0 ; $index < $modelVs.length , $modelVs.length > $MAX_CACHE ; $index += 1){
                    if($modelVs[$index].isIdle){
                        $modelVs.splice($index,1);
                        $index -= 1;
                    }
                }
            }
        }
        
        public function hideAll() : void{
            PraiseBridePriceStrap.instance.showAndUpdate(false);
            for(var $index : int = 0 , $len : uint = $modelVs.length ; $index < $len ; $index += 1){
                remove($modelVs[$index]);
                $modelVs[$index].isIdle = true;
            }
            $isHandleVs = false;
            modelsArrange();
            if($tweenLife != null) $tweenLife = null;
        }
        private function getOneModel( $callBack : Function = null ,$isMe : Boolean = false) : PraiseThumbsModel{
            if($modelVs.length <= 0){
                return creatOneModel($callBack,$isMe);
            }else{
                if(!$isHandleVs){
                    $isHandleVs = true;
                    var $rootModel : PraiseThumbsModel;
                    for( var $index : int = 0, $len : uint = $modelVs.length ; $index < $len ; $index += 1){
                        if($modelVs[$index].isIdle){
                            $modelVs[$index].isIdle = false;
                            $modelVs[$index].isMe = $isMe; //更新  自我属性
                            $rootModel = $modelVs[$index];
                            break;
                        }
                    }
                    $isHandleVs = false;
                    if($rootModel != null){
                        return $rootModel;
                    }else{
                        return creatOneModel($callBack,$isMe);
                    }
                }else{
                    return creatOneModel($callBack,$isMe);
                }
            }
        }
        
        private function creatOneModel( $callBack : Function ,$isMe : Boolean) : PraiseThumbsModel{
            var $myModel : PraiseThumbsModel = new PraiseThumbsModel();
            $myModel.isIdle = false;
            $myModel.isMe = $isMe;  //设置自我属性
            $myModel.thumb = new GameAssets["PraiseThumb"] as Sprite;
            $myModel.callBack = $callBack;
            this.$modelVs.push($myModel);
            return $myModel;
        }
    }
             
             
}
import flash.display.Sprite;

 class PraiseThumbsModel{
    private var $isIdle : Boolean = true;
    private var $thumb : Sprite;
    private var $callBack : Function;
    private var $isMe : Boolean = false;
             
    public function set isIdle( $value : Boolean ) : void{
        this.$isIdle = $value;
    }
    public function set thumb( $value : Sprite ) : void{
        this.$thumb = $value;
    }
    public function set callBack( $value : Function ) : void{
        this.$callBack = $value;
    }
    public function set isMe($value : Boolean ) : void{
        this.$isMe = $value;
    }
    
    public function get isIdle() : Boolean{
        return this.$isIdle;
    }
    
    public function get thumb() : Sprite{
        return this.$thumb;
    }
    
    public function get callBack() : Function{
        return this.myCallBack;
    }
    
    public function get isMe() : Boolean{
        return this.$isMe;
    }
    private function myCallBack() : void{
        if($callBack!= null){
            $callBack(this);
        }else{
            Debug.log("40225.1 Kayer 点赞没有CallBack!",Debug.RED);
        }
    }
}

另外: 此类,缓存了7个实例,就像对象池一样.


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

AS3外部类

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

AS3外部类

1,注意事项,外部类只能在本文件中的其他类使用,2,外部类不要写类修饰符3,外部类写在包外  好处是:        1,可以当做本文件内部类的数据Model,好找.而且看起来更加直观        2,外部代码无法调用,安全性高.但是缺点
2023-01-31

Flash AS3 连续加载外部若干图片

转载:http://sean.huanglijiang.com/article.asp?id=125 //载入图片     public function loadClassBgPic():void     {      
2023-01-31

AS3部署调试

一般AS3开发的项目会放在WEB上 , 那就涉及到远程的调试.步骤 ① : 添加网站地址 :        1:右击项目 ->属性 -> 打开项目属性面板:编辑配置如下图:另外必须指出 :如果代码(AS)有改动 , 则WEB站点的文件也要更
2023-01-31

AS3贝塞尔曲线类

贝塞尔曲线被广泛用于塔防类的游戏,当然一些特殊的缓动效果有些 也用 到这个 , 目前 这个没必要我们担心 , TweenMax 为我们提供了这些功能. package com.ainy.benz{ import flash.geom.
2023-01-31

java外部类与内部类怎么理解

本篇内容主要讲解“java外部类与内部类怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java外部类与内部类怎么理解”吧! 一、内部类内部类就是将一个类A定义在类B里边,里边的那个类A称
2023-06-22

java的内部类和外部类怎么使用

本篇内容介绍了“java的内部类和外部类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为何使用内部类内部类提供了更好的封装,只有
2023-06-22

Python 导入外部类文件

通常,定义类的代码和调用类创建对象的代码很少放到同一文件下,这就遇到【一个文件需要调用另一个独立存放的类文件来创建对象】的问题。书上和网上的入门教材对此提及较少,以下举例说明其实现方法:t1.py:# 这里是定义类的文件class Cal:
2023-01-31

Java和ABAP里的外部类和内部类是什么

这篇文章主要讲解了“Java和ABAP里的外部类和内部类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java和ABAP里的外部类和内部类是什么”吧!JavaOuter class n
2023-06-04

java内部类引用局部变量与外部类成员变量实例分析

这篇“java内部类引用局部变量与外部类成员变量实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java内部类引用局部
2023-06-17

如何在 kubebuilder 中监视外部自定义资源更改而不导入外部类型

问题内容假设我有以下代码片段,它设置了一个监视外部资源“external”的协调器:// SetupWithManager sets up the controller with the Manager.func (r *Someth
如何在 kubebuilder 中监视外部自定义资源更改而不导入外部类型
2024-02-06

vbs如何调用外部对像和类型库

这篇文章将为大家详细讲解有关vbs如何调用外部对像和类型库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先举个例子,最近的flash网马调用: var Flashver = (new ActiveXObj
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录