广告
返回顶部
首页 > 资讯 > 后端开发 > 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://www.lsjlt.com/news/191321.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 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+
    2022-11-12
  • java外部类与内部类怎么理解
    本篇内容主要讲解“java外部类与内部类怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java外部类与内部类怎么理解”吧! 一、内部类内部类就是将一个类A定义在类B里边,里边的...
    99+
    2023-06-22
  • AS3贝塞尔曲线类
    贝塞尔曲线被广泛用于塔防类的游戏,当然一些特殊的缓动效果有些 也用 到这个 , 目前 这个没必要我们担心 , TweenMax 为我们提供了这些功能. package com.ainy.benz { import flash.geo...
    99+
    2023-01-31
    塞尔 曲线
  • java外部类与内部类的关系详解
     private,public,protected,default的访问权限区别 在学习外部类与内部类之前我们首先要弄明白private,public,protected,defau...
    99+
    2022-11-12
  • java的内部类和外部类用法讲解
    目录一、为何使用内部类二、内部类与外部类的联系2.1内部类是一个相对独立的实体,与外部类不是is-a关系2.2内部类可以直接访问外部类的元素,但是外部类不可以直接访问内部类的元素2....
    99+
    2022-11-12
  • java的内部类和外部类怎么使用
    本篇内容介绍了“java的内部类和外部类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为何使用内部类内部类提供了更好的封装,只有...
    99+
    2023-06-22
  • 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+
    2022-11-13
  • vbs如何调用外部对像和类型库
    这篇文章将为大家详细讲解有关vbs如何调用外部对像和类型库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先举个例子,最近的flash网马调用: var Flashver = ...
    99+
    2023-06-08
  • sqlloader外部表
    一创建目录 先在系统下创建$ cd /home/oracle $ mkdir dir $ cd dir $ pwd ...
    99+
    2022-10-18
  • Java内部类详解(含:成员内部类、局部内部类、匿名内部类、静态内部类)
    内部类是什么? 字面意思,在类的内部编写的类就叫内部类!即一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。 内部类是类的第五大成员→【提示:类的五大...
    99+
    2023-10-26
    jvm
  • Java使用 Class.forName 加载外部 Jar 里的类文件
    故事背景 在一个框架叫 magic-api 里,可以低代码的方式写代码,动态编译执行,但是要想加载一些 import 类进来,需要前提在项目里加载 jar 完成后才可以 import...
    99+
    2022-11-13
  • java内部类之成员内部类、局部内部类和匿名内部类用法及说明
    目录内部类概念分类成员内部类使用成员内部类间接方式访问内部类直接方式访问内部类外部类和内部类变量重名问题局部内部类修饰内部类的权限匿名内部类测试类 一、匿名内部内应用总结内部类概念 ...
    99+
    2022-12-23
    java成员内部类 java局部内部类 java匿名内部类 java内部类
  • 怎么使用Java内部类、成员内部类、静态内部类和方法内部类
    这篇文章主要讲解了“怎么使用Java内部类、成员内部类、静态内部类和方法内部类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Java内部类、成员内部类、静态内部类和方法内部类”吧!&...
    99+
    2023-06-15
  • Java内部类与匿名内部类
    目录一、内部类什么是内部类成员内部类访问特点二、匿名内部类前提格式使用方式一、内部类 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 成员...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作