返回顶部
首页 > 资讯 > 后端开发 > Python >AS3外部类
  • 522
分享到

AS3外部类

2023-01-31 07:01:56 522人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

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

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个实例,就像对象池一样.


--结束END--

本文标题: AS3外部类

本文链接: https://lsjlt.com/news/191321.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • AS3外部类
    1,注意事项,外部类只能在本文件中的其他类使用,2,外部类不要写类修饰符3,外部类写在包外  好处是:        1,可以当做本文件内部类的数据Model,好找.而且看起来更加直观        2,外部代码无法调用,安全性高.但是缺点...
    99+
    2023-01-31
  • Flash AS3 连续加载外部若干图片
    转载:http://sean.huanglijiang.com/article.aspid=125 //载入图片     public function loadClassBgPic():void     {       /...
    99+
    2023-01-31
    加载 图片 Flash
  • AS3部署调试
    一般AS3开发的项目会放在WEB上 , 那就涉及到远程的调试.步骤 ① : 添加网站地址 :        1:右击项目 ->属性 -> 打开项目属性面板:编辑配置如下图:另外必须指出 :如果代码(AS)有改动 , 则WEB站点的文件也要更...
    99+
    2023-01-31
  • java外部类与内部类简介
     一、内部类 内部类就是将一个类A定义在类B里边,里边的那个类A称为内部类,外边的类B称为外部类 成员内部类定义格式: class 外部类{ class 内部类{ } } ...
    99+
    2024-04-02
  • AS3贝塞尔曲线类
    贝塞尔曲线被广泛用于塔防类的游戏,当然一些特殊的缓动效果有些 也用 到这个 , 目前 这个没必要我们担心 , TweenMax 为我们提供了这些功能. package com.ainy.benz { import flash.geo...
    99+
    2023-01-31
    塞尔 曲线
  • java外部类与内部类怎么理解
    本篇内容主要讲解“java外部类与内部类怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java外部类与内部类怎么理解”吧! 一、内部类内部类就是将一个类A定义在类B里边,里边的...
    99+
    2023-06-22
  • java的内部类和外部类怎么使用
    本篇内容介绍了“java的内部类和外部类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为何使用内部类内部类提供了更好的封装,只有...
    99+
    2023-06-22
  • java外部类与内部类的关系详解
     private,public,protected,default的访问权限区别 在学习外部类与内部类之前我们首先要弄明白private,public,protected,defau...
    99+
    2024-04-02
  • java的内部类和外部类用法讲解
    目录一、为何使用内部类二、内部类与外部类的联系2.1内部类是一个相对独立的实体,与外部类不是is-a关系2.2内部类可以直接访问外部类的元素,但是外部类不可以直接访问内部类的元素2....
    99+
    2024-04-02
  • c++内部类如何访问外部类成员
    在C++中,内部类可以直接访问外部类的成员变量和成员函数。为了访问外部类的成员,内部类需要使用外部类的指针来引用外部类的成员。以下是...
    99+
    2024-04-02
  • c++内部类和外部类有什么区别
    在C++中,内部类和外部类的主要区别在于其访问权限和作用域。 内部类是在另一个类的内部声明的类,在外部类的作用域内,内部类可以访...
    99+
    2024-04-02
  • Python 导入外部类文件
    通常,定义类的代码和调用类创建对象的代码很少放到同一文件下,这就遇到【一个文件需要调用另一个独立存放的类文件来创建对象】的问题。书上和网上的入门教材对此提及较少,以下举例说明其实现方法: t1.py:# 这里是定义类的文件 class C...
    99+
    2023-01-31
    文件 Python
  • Java和ABAP里的外部类和内部类是什么
    这篇文章主要讲解了“Java和ABAP里的外部类和内部类是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java和ABAP里的外部类和内部类是什么”吧!JavaOuter class n...
    99+
    2023-06-04
  • java内部类引用局部变量与外部类成员变量实例分析
    这篇“java内部类引用局部变量与外部类成员变量实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java内部类引用局部...
    99+
    2023-06-17
  • 如何在C++类的外部调用类的私有方法
    目录前言问题技术准备1. pointers to member functions2. The explicit template instantiation3. Passing a...
    99+
    2024-04-02
  • 如何在 kubebuilder 中监视外部自定义资源更改而不导入外部类型
    问题内容 假设我有以下代码片段,它设置了一个监视外部资源“external”的协调器: // SetupWithManager sets up the controller with ...
    99+
    2024-02-06
  • vbs如何调用外部对像和类型库
    这篇文章将为大家详细讲解有关vbs如何调用外部对像和类型库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先举个例子,最近的flash网马调用: var Flashver = ...
    99+
    2023-06-08
  • Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)
    内部类是什么? 字面意思,在类的内部编写的类就叫内部类!即一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。 内部类是类的第五大成员→【提示:类的五大...
    99+
    2023-10-26
    jvm
  • sqlloader外部表
    一创建目录 先在系统下创建$ cd /home/oracle $ mkdir dir $ cd dir $ pwd ...
    99+
    2024-04-02
  • Java使用 Class.forName 加载外部 Jar 里的类文件
    故事背景 在一个框架叫 magic-api 里,可以低代码的方式写代码,动态编译执行,但是要想加载一些 import 类进来,需要前提在项目里加载 jar 完成后才可以 import...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作