精华内容
参与话题
问答
  • Vuex 的 action 属性内,可以定义异步操作逻辑,以满足某些业务场景要求。在组件内,是通过 $store.dispatch 来触发 action 定义的函数。 我们使用 action,来为计数器异步增 1。 1 Promise 方式 ...

    Vuex 的 action 属性内,可以定义异步操作逻辑,以满足某些业务场景要求。在组件内,是通过 $store.dispatch 来触发 action 定义的函数。

    我们使用 action,来为计数器异步增 1。

    1 Promise 方式

    main.js:

    const store = new Vuex.Store({
        state: {
            count: 0,
        },
        mutations: {
            increment(state, n = 1) {
                state.count += n;
            }
        },
        actions: {
            asyncInrement(context) {
                return new Promise(resolve => {
                    setTimeout(() => {
                        context.commit('increment');
                        resolve();
                    }, 1000)
                });
            }
        }
    });
    

    这里使用了 Promise ,在 1 s 后提交了 mutations 中定义的 increment 递增函数。它是 ES6 语法,有三种状态:

    状态 说明
    Pending 进行中
    Resolved 已完成
    Rejected 失败

    index.vue:

    <template>
    
        <div>
            {{count}}
            <button @click="asyncIncrementByAction">+1</button>
        </div>
    </template>
    
    <script>
        export default {
            name: "index.vue",
            computed: {
                count() {
                    return this.$store.state.count;
                }
            },
            methods: {
                asyncIncrementByAction() {
                    this.$store.dispatch('asyncInrement').then(() => {
                        console.log(this.$store.state.count);
                    })
                }
            }
        }
    </script>
    
    

    2 Callback 方式

    也可以使用普通回调来实现异步方案。

    main.js

    const store = new Vuex.Store({
    ...
        actions: {
          ...
            asyncInrement2(context, callback) {
                setTimeout(() => {
                    context.commit('increment');
                    callback();
                }, 1000);
            }
        }
    });
    

    index.vue:

    <template>
        <div>
            ...
            {{count}}
            <button @click="asyncIncrementByAction2">+1(Callback)</button>
        </div>
    </template>
    
    <script>
        export default {
            ...
            methods: {
                ...
                asyncIncrementByAction2() {
                    this.$store.dispatch('asyncInrement2',() => {
                        console.log(this.$store.state.count);
                    });
                }
            }
        }
    </script>
    
    

    3 效果

    展开全文
  • GitHub Actions 入门实践

    2020-11-11 16:31:30
    GitHub Actions 是 GitHub 推出的功能,可以为我们的项目构建自动化工作流。例如代码检查,自动化打包,测试,发布版本等等。入口在项目 Pull Requests 旁边。 本篇文章主要是趟一遍其中的小坑,让大家在第一次使用...

    在这里插入图片描述

    前言

    GitHub Actions 是 GitHub 推出的功能,可以为我们的项目构建自动化工作流。例如代码检查,自动化打包,测试,发布版本等等。入口在项目 Pull Requests 旁边。

    本篇文章主要是趟一遍其中的小坑,让大家在第一次使用的时候能比较顺利的跑通。其中主要用到了 GitHub,Docker,SpringBoot,Nginx 等技术。对这些技术还不是很了解的伙伴,可以先自行查阅一下资料哈。😊

    实践步骤

    创建 SpringBoot 工程

    使用 IDEA 创建一个 SpringBoot 工程,SpringBoot 从 2.3.0.M1 版本开始用 Gradle 构建。所以我们这里也选 Gradle 作为构建工具 🔧。

    We made a fairly significant change to Spring Boot in 2.3.0.M1. It was the first release of the project to be built with Gradle rather than Maven.

    🔎 详情可参考 Migrating Spring Boot’s Build to Gradle

    在 SpringBoot 工程中,我们编写一个简单的控制器用于测试,代码十分简单,这里也给出示例。

    @RestController
    public class DemoController {
        @GetMapping("/")
        public String sayHello() {
            return "Hello GitHub Actions!";
        }
    }
    

    编写 Dockerfile 文件

    在 SpringBoot 工程中创建 Dockerfile 文件,用于镜像打包 📦。

    # FROM 指定基础镜像
    FROM openjdk:8-jdk-alpine
    # ARG 构建参数
    ARG JAR_FILE=build/libs/*.jar
    # COPY 复制文件
    COPY ${JAR_FILE} app.jar
    # 暴露端口
    EXPOSE 8080
    # CMD 容器启动命令
    CMD java -jar /app.jar
    

    还不了解 Dockerfile 的小伙伴可前往 使用 Dockerfile 定制镜像 了解一下基础知识。

    创建 Docker Registry

    这一步小伙伴们可以自由选择阿里云或者腾讯云等云服务商开通相应服务,之后我们打包好的镜像要上传到我们自己私有的 Docker Registry 中。这一步很重要大家一定要开通好再进行下面的步骤哈。

    开通好服务之后,可稍微阅读一下服务商的文档,对该服务有个大概的基本认识即可。

    本篇文章中使用的云服务商是阿里云,大家可点击这里进行开通与配置。

    上传代码

    将我们的 SpringBoot 工程上传到 GitHub Repository 中,关于怎么创建 GitHub Repository,相信各位小伙伴都产生肌肉记忆了吧 💪!

    git init
    git add .
    git commit -m "first commit"
    git remote add origin {{ your origin url }}
    git push -u origin master
    

    进入 SpringBoot 工程目录,输入上面这几条命令,就可以轻松将代码上传至你的 GitHub Repository。

    配置 GitHub Actions

    我们点击 Actions 选项卡,选择 Java with Gradle 模版作为基础模版进行配置。

    # GitHub Actions 的名称
    name: GitHub Actions SpringBoot Demo
    
    # 当 master 分支发生 push 或者 pull request 事件时触发 action
    on:
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
    # 指定 jobs
    jobs:
      # build job
      build:
    
        # 指定运行在 ubuntu 上
        runs-on: ubuntu-latest
        steps:
    
        # 把仓库代码拉到 ubuntu 镜像上
        - uses: actions/checkout@v2
    
        # 指定 java 版本
        - name: Set up JDK 1.8
          uses: actions/setup-java@v1
          with:
              java-version: 1.8
    
        # 给 gradle 赋予可运行权限
        - name: Grant execute permission for gradlew
          run: chmod +x gradlew
    
        # 通过 gradle 打包我们的项目
        - name: Build with gradle
          run: ./gradlew build
    
        # 通过 Dockerfile 构建镜像
        - name: Build docker image
          run: docker build . -t {{ image_name:image_version }}
        
        # 登陆到我们自己的 docker registry
        - name: Login to aliyun docker image registry
          run: echo "${{ secrets.REGISTRY_PASSWORD }}" |  docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com --password-stdin
    
        # 上传 docker 镜像
        - name: Push image to aliyun docker image registry
          run: docker push {{ image_name:image_version }}
    

    配置文件中的 ${{ secrets.XXX }} 变量,是 GitHub 为了保护我们的密钥所提供的功能。可以在仓库的 Settings 下的 Secrets 中定义变量,然后按照 ${{ secrets.XXX }} 的格式,就可以拿到变量值。

    到这儿,我们就完成了 GitHub Actions 的配置文件编写。小伙伴们需要注意一下 yaml 文件的格式,不要出现格式错误。

    触发 GitHub Actions

    完成配置文件的编写之后,我们点击 start commit 进行提交,提交成功后会自动触发 Actions 功能进行构建。

    点击 Actions 选项卡,找到被触发的 Actions,等待片刻即可看见构建结果。如果构建中途出现了错误,也可直接在这里看见原因并前往配置文件排查。

    构建完成之后,我们可以进入相应的云服务商后台查看一下我们上传的 Docker 镜像,再次确认是否构建成功!

    部署到服务器

    小伙伴们确认一下自己的服务器是否已经安装 Nginx,Docker。如果还没有安装,可以先查阅相关资料进行安装。安装成功之后,再进行下列步骤。

    这里我们要准备一份简单的服务器部署 bash 脚本,完成对旧容器的关闭删除,对新镜像的拉取并且构建新容器操作。这里有一份简单的例子可以参考。

    # 拉取新镜像
    docker pull {{ your image_name:image_version }}
    # 停止旧容器
    docker stop {{ your container name }}
    # 删除停止的容器
    docker container prune -f
    
    # 构建新容器
    docker run \
    -p 8080:8080 \
    -v /data:/data \
    --name {{ your container name }} \
    -d {{ your image_name:image_version }}
    

    我们需要对上面编写好的 GitHub Actions 配置文件增加一些内容,主要作用是推送完 Docker 镜像之后,触发远程服务器拉取镜像重新构建,并用新的镜像启动容器。完整的 GitHub Actions 配置文件如下所示。

    # GitHub Actions 的名称
    name: GitHub Actions SpringBoot Demo
    
    # 当 master 分支发生 push 或者 pull request 事件时触发 action
    on:
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
    # 指定 jobs
    jobs:
      # build job
      build:
    
        # 指定运行在 ubuntu 上
        runs-on: ubuntu-latest
        steps:
    
        # 把仓库代码拉到 ubuntu 镜像上
        - uses: actions/checkout@v2
    
        # 指定 java 版本
        - name: Set up JDK 1.8
          uses: actions/setup-java@v1
          with:
              java-version: 1.8
    
        # 给 gradle 赋予可运行权限
        - name: Grant execute permission for gradlew
          run: chmod +x gradlew
    
        # 通过 gradle 打包我们的项目
        - name: Build with gradle
          run: ./gradlew build
    
        # 通过 Dockerfile 构建镜像
        - name: Build docker image
          run: docker build . -t {{ image_name:image_version }}
        
        # 登陆到我们自己的 docker registry
        - name: Login to aliyun docker image registry
          run: echo "${{ secrets.REGISTRY_PASSWORD }}" |  docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com --password-stdin
    
        # 上传 docker 镜像
        - name: Push image to aliyun docker image registry
          run: docker push {{ image_name:image_version }}
    
        # 连接到远程服务器
        - name: Connect to server
          uses: webfactory/ssh-agent@v0.4.1
          with:
            ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
        
        # 初始化 knownhosts
        - name: Setup knownhosts
          run: ssh-keyscan {{ your host }} >> ~/.ssh/known_hosts
    
        # 触发服务器部署脚本
        - name: Trigger server deployment script
          run: ssh root@{{ your host }} "sh {{ your deployment bash script }}"
    

    关于 Nginx 方面,相信各位小伙伴应该是十分熟悉了,这里就不过多赘述。直接贴上一份简单的配置文件。

    server {
        listen 80;
        server_name {{ your domain }};
    
        location / {
               proxy_pass http://localhost:8080/;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_set_header X-Forwarded-Port $server_port;
        }
    }
    

    测试 GitHub Actions

    完成了上面这些步骤,我们到 SpringBoot 工程里修改一下代码并提交到 GitHub Repository。稍等一会儿再访问项目,查看一下效果!

    @RestController
    public class DemoController {
        @GetMapping("/")
        public String sayHello() {
            return "Hello GitHub Actions!Hello World!";
        }
    }
    

    到这里我们就成功完成了一个基础的 GitHub Actions 实践,以后小伙伴们修改完代码,Push 或者 PR 到 master 分支,GitHub Actions 就会自动完成我们设置好的构建步骤。非常的方便快捷!🎉🎉🎉

    总结

    这份基础的 GitHub Actions SpringBoot 实践仅供大家参考,如果遇到什么坑,也欢迎在评论区与我讨论。文章写的不好,请大家多多谅解 😂。

    展开全文
  • vue中的Actions

    千次阅读 2019-05-30 17:24:53
    actions异步修改状态 actions和mutations是类似的,不同之处在于: Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的; Action是支持异步操作的,而Mutations只能是...

    actions异步修改状态

    actions和mutations是类似的,不同之处在于:

    • Action提交的是Mutation,不能够直接修改state中的状态,而Mutations是可以直接修改state中状态的;
    • Action是支持异步操作的,而Mutations只能是同步操作。

    还是通过代码来理解吧

    1、在store.js中定义一个常量actions,如下:

    const mutations = {
        //注册事件  type:add  回调第一个参数是state
        add(state,val){
            state.count++
        },
        reduce(state, val){
            state.count --
        }
    }
    

    const actions = {
    //这里的actionAdd是组件中和所触发的事件相对应的方法
    actionAdd(context){
    context.commit(‘add’)//这里的add是mutations中的方法
    },
    //这里是通过参数结构来简化代码。
    actionReduce( { commit } ){
    commit(‘reduce’)
    }
    }

    Actions接受一个context对象参数,该参数具有和store实例相同的属性和方法,所以我们可以通过context.commit()提交mutations中的方法,或者可以通过context.state和context.getters去获取state和getters。

    • context作为上下文对象,可以简单的理解成store实例,有共享store实例的属性和方法的权利,但是切记:context并不是store实例本身。

    • { commit } 这里直接把commit为属性的对象传过来,可以让代码简单明了。

    2、同样的,我们需要将actions导出去

    export defualt new Vuex.Store({
        state, mutations, actions
    })
    

    3、分发action:在组件中可以通过this.$store.dispatch分发action,或者使用mapActions辅助函数将methods映射为store.dispatch调用。

    Action 通过 store.dispatch 方法触发

    
        add(){
            this.$store.dispatch('actionAdd')
        },
        reduce(){
            this.$store.dispatch('actionReduce')
        }
    

    Actions支持同样的载荷方式和对象进行分发:

        add(){
            this.$store.dispatch('actionAdd', {
                num: 20
            })
        },
        reduce(){
            this.$store.dispatch(
                {type:'actionReduce', num : 10}
            )
        }
    

    在actions里对应的方法中第二个参数接受分发是传递的值。

    使用mapActions辅助函数

    <button @click = 'actionAdd'>+</button>
    <button @click = 'actionReduce'>-</button>
    
    
    //同样需要导入mapActions辅助函数
    import { mapState, mapMutations, mapActions } from 'vuex'
    

    methods: {

    <span class="hljs-comment">//如果名字不同,使用mapActions辅助函数的对象参数</span>
    <span class="hljs-comment">//...mapActions( { add: 'actionAdd', reduce: 'actionReduce'} )</span>
    
    <span class="hljs-comment">//当action中的函数名和组件节点的方法名相同的时候,使用mapActions辅助函数的数组参数</span>
    ...mapActions( [<span class="hljs-string">'actionAdd'</span>, <span class="hljs-string">'actionReduce'</span>] )
    

    }

    如果觉得以上不好理解,看下面代码,哈哈,这是写笔记的过程中尝试出来的(纯属瞎玩,正真开发是不带这么干的)。

    //组件通过触发事件去调用actions中的方法,进而调用mutations中的方法
        add(){
                console.log(this.$store._actions)
                this.$store._actions.actionAdd[0]()
        },
        reduce(){
                this.$store._actions.actionReduce[0]()
        }
    

    为什么要这样做,我们先把store打印出来看看里边究竟是什么鬼便一目了然:

    然后我们_action展开:

    发现_action对象的两个属性就是我们在store.js的actions里定义的两个函数,值是分别是一个长度为1的数组。所以我们可以通过下面的这种方法也可以触发action中的方法,进而触发mutations中的方法。

    这种方式仅仅是为了理解它是怎么一回事,在真正的开发中是不能这样做的,且不说代码乱,更重要的显示不专业啊。_

          </div>
          转:https://www.jianshu.com/p/06bb7ad9adbf
    
    展开全文
  • YII2框架开发程序时,很多时候会遇到一些功能大致相同的方法,这时候,可以选择把这些方法统一写到外部以方便管理。 例如在yii2的演示包里... public function actions() { return [ 'error' => [ 'class'

    YII2框架开发程序时,很多时候会遇到一些功能大致相同的方法,这时候,可以选择把这些方法统一写到外部以方便管理。

    例如在yii2的演示包里siteController.php文件中就有一段:

     public function actions()
        {
            return [
                'error' => [
                    'class' => 'yii\web\ErrorAction',
                ],//返回错误
                'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ],//返回验证
            ];
        }

    在这段程序里,分别用到了error和captcha两个外部action,分别用来回显错误和校验图形验证码。我们可以在vendor/yiisoft/yii2里找到对应的程序文件。

    类似的,Yii2共提供了如下action:

    InlineAction
    CaptchaAction
    CreateAction
    DeleteAction
    IndexAction
    OptionsAction
    UpdateAction
    ViewAction
    ErrorAction
    GenerateAction

    仿造这些文件,我们也可以编写自己的外部action。

    第一步:找到frontend/libs文件夹,新建 文件TestAction.php

    自写义的外部action,可以放到任意位置,作为示例,我把它放到网站的frontend/libs里面。

    第二步:在文件TestAction.php中输入代码:

    仿照已有的action文件,在新建的TestAction.php文件中写入如下内容:

    <?php
    namespace frontend\libs;
    use yii\base\Action;
    class TestAction extends Action {
        public function run() {
            return $this->controller->render('test');
        }
    }

    第三步:在SiteController里调用testAction:

    修改SiteController的function actions,加上以下代码中的高亮部分:

    public function actions()
        {
            return [
                'error' => [
                    'class' => 'yii\web\ErrorAction',
                ],//返回错误
                'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ],//返回验证
                'test'=>[
                    'class'=>'frontend\libs\TestAction',
                ]
            ];
        }

    第四步:在views/site下添加test.php视图文件

    在TestAction中我们调用了视图,所以,需要添加相应的视图文件。如果在多个不同的controller中用到TestAction,那么,可以为每个controller配置不同的视图。

    view/test.php

    	
    <h1>TestAction</h1>
    <p>这是TestAction演示页面!</p>
    第五步:现在,TestAction已经完成了,我们可以输入网址预览一下:



    接下来,我们可以试试为testAction添加参数:

    第六步:修改TestAction.php,添加待输入的三个参数:

    <?php
    namespace frontend\libs;
    use yii\base\Action;
    class TestAction extends Action {
        public $param1=NULL;
        public $param2=NULL;
        public function run($get=NULL) {
            return $this->controller->render('test',[
                'get'=>$get,
                'param1'=>$this->param1,
                'param2'=>$this->param2
            ]);
        }
    }

    这段代码中需要配置三个参数,$get、$param1、$param2,其中$get是在url中传递的,例如按照我电脑上的配置,访问http://127.0.0.8/index.php?r=site%2Ftest&get=xxx,就会为$get赋值xxx。而$param1和$param2则是在controller中设置的。

    第七步:修改SiteController的function actions,为$param1和$param2赋值

    public function actions()
        {
            return [
                'error' => [
                    'class' => 'yii\web\ErrorAction',
                ],
                'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ],
                'test'=>[
                    'class'=>'frontend\libs\TestAction',
                    'param1'=>'参数一',
                    'param2'=>'参数二',
                ]
            ];
        }

    这样,$param1和$param2参数就传递过去了。

    最后,配置视图views/site/test.php完成测试:

    <h1>TestAction</h1>
    <p>这是TestAction演示页面!</p>
    <p>$get="<?=$get?>"</p>
    <p>$param1="<?=$param1?>"</p>
    <p>$param2="<?=$param2?>"</p>

    按各人本地路径访问网址如:http://127.0.0.8/index.php?r=site%2Ftest&get=xxx

    可看到显示结果







    展开全文
  • actions

    千次阅读 2020-04-17 14:40:06
    1.Action 类似于 mutation,不同在于: Action 提交的是 mutation,而不是...3.Actions 支持同样的载荷方式和对象方式进行分发: 4.来看一个更加实际的购物车示例,涉及到调用异步 API和分发多重 mutation: ...
  • 体验分享 本文一个尝鲜的体验分享, 并没有太复杂的技巧, 做了一个最少代码的例子展示, 让每个人都可以把action用起来, 如果路过的大牛有高级技巧请留言分享, 我会补充. 下面正文开始. 是什么? ...注: 后面的文章假设...
  • ActionScript

    2009-04-03 17:36:19
    第1章 揭开ActionScript的神秘面纱 第2章 Flash MX的动作面板 第3章 ActionScript编程初步 第4章 影片播放控制 第5章 控制影片剪辑 第6章 影片剪辑属性 第7章 影片剪辑方法 第8章 响应键盘 9章 输入文本和字符串...
  • 原文链接: ...   ... 今天在做项目的过程中使用了一下关联数组,在判断关联数组是否为空时,碰见了一个问题,利用数组中常用到的length属性,发现在关联数组明确有值的情况下,返回值为0,让我很是郁闷,看了下...
  • ActionScript是针对Flash Player的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将程序写在什么地方呢?在flash创作环境中,我们的程序写在"动作"面板中 <br />而...
  • ActionScript 3.0 API文档(CHM+HTML最新中文完整)

    千次下载 热门讨论 2011-03-11 20:09:30
    ActionScript 3.0 语言和组件参考》概述 《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用程序编程接口 (API) 的参考手册。 此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、...
  • actionscript

    2011-11-21 19:57:00
    actionscript 求助编辑百科名片 图 ActionScript 动作脚本是遵循 ECMAscript第四版 的 Adobe Flash Player 运行时环境的编程语言。它在 Flash 内容和应用程序中实现交互性、数据处理以及其他功能。...
  • ActionScript 3.0基础教程(中文版)

    千次下载 热门讨论 2011-12-06 08:29:10
    [加] Derrick Ypenburg 著 这本书将帮助你建立ActionScript 3.0完整的知识体系,了解并掌握ActionScript 3.0语法的各个知识点,是开始ActionScript 3.0编程之旅的第一步。
  • ActionScript菜鸟教程

    千次阅读 2007-07-04 16:01:00
    第1章 揭开ActionScript的神秘面纱ActionScript是Flash内置的编程语言,用它为动画编程,可以实现各种动画特效、对影片的良好控制、强大的人机交互以及与网络服务器的交互功能。 ActionScript是一门吸收了C++、Java...
  • ActionScript 3.0 语法

    千次阅读 2013-12-11 16:13:16
     常量和变量在ActionScript 3.0中使用常量和变量和其他的编程开发语言一样,没什么太大的区别,作用点都是相同的。简单理解就是常量就是值不会改变的量,变量则相反。 在AS3.0中常量也可以分为两种:顶级常量和...
  • 第一章:ActionScript基础

    千次阅读 2007-07-13 12:59:00
    介绍:使用ActionScript,你可以创建flash程序,作任何你能想到的事情。但是在进入更广阔的范围之前,让我们先了解一下基础。好的消息时ActionScript的命令有定义好的模式,共享相同的语法,结构,和概念。掌握基础...
  • Flash ActionScript 3.0编程技术教程(全)

    热门讨论 2011-11-24 16:23:44
    本书全面介绍了ActionScript 3.0的基本语法、类的架构以及面向对象程序的设计理念。内容安排上既适合刚刚接触到ActionScript脚本语言的初学者,也照顾到学习过ActionScript之前版本有一定编程经验的读者。 鉴于...
  • Github Actions 官方文档对很多细节都进行了详细说明,但是如果你是第一次接触,看了很多关于细节的东西,不知所云,导致很快忘记。本篇文章,从我项目的代码,从总体上,认识一下Actions。文章最后,我会把我在...
  • ActionScript动画入门

    2004-05-17 17:48:00
    James Rice 作者简介:James是专注于Web开发的自由创作者,并向个人、小型或大型商务公司提供Web开发咨询。访问他的个人工作室:jamesrice.net,他... 阅读级别:8.7 &...xml:namespace prefix = o ns = "......
  • ActionScript中的关键词

    千次阅读 2012-01-11 10:06:09
    switch 语句会创建 ActionScript 语句的分支结构。 Attribute 关键字可以更改定义的含义,还可用于定义类、变量、函数和命名空间。Definition 关键字用于定义变量、函数、类和接口等实体。主表达式关键字代表...
  • ActionScript教程

    千次阅读 2010-04-28 13:24:00
    1.转自 http://www.kingda.org 的链接 ActionScript 3 教程系列 ActionScript 3.0系列教程(1):与Flash9先来一次亲密接触! AS 3.0教程(2):AS3.0的类及绑定 AS3.0教程(3)document Class特色为我们带来了什么? ...

空空如也

1 2 3 4 5 ... 20
收藏数 207,821
精华内容 83,128
关键字:

actions