当前位置:  开发笔记 > 编程语言 > 正文

自定义(简单)AS3类代码不完全执行

如何解决《自定义(简单)AS3类代码不完全执行》经验,为你挑选了1个好方法。

这个问题可能很容易解决,但我不清楚.可能只是我做错了事.我已经研究了OOP和AS3几个小时,所以我熟悉概念但不熟悉流程.这是我整理的一个项目,以加强我一直在学习的东西.

这里的目标是从库中将预先创建的动画片段的实例加载到舞台,然后在FLA的时间帧ActionScript中执行定位功能,并在AS文件的ActionScript类中执行一个函数,以调整动画片段的大小并输出跟踪.

我有两个文件:smileface.fla smileface.as

在smileface.fla中,我有一个驻留在我的库中的MovieClip对象.它具有以下相关属性......

Name: faceInst
Class: smileface
Base Class: null

我有一个框架(关键帧),它包含以下ActionScript:

var faceInst:smileface = new smileface();
this.addChild(faceInst);
faceInst.x = stage.stageWidth/2;
faceInst.y = stage.stageHeight/2;

在我的smileface.as文件中,我有以下代码:

package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    public class smileface extends MovieClip {
        public function smileFunction() {
            this.width = stage.stageWidth/5;
            this.height = stage.stageHeight/5;
            trace("Done!");
        }
    }
}

我希望(没有理由这样做)在加载movieclip对象之后,它将根据规范调整大小,然后输出跟踪.

然而,相反的是,面部显示在舞台上,居中,但没有调整大小,并且根本不输出轨迹.



1> longstaff..:

如果你想要它作为构造函数,它需要与文件相同的名称,笑脸而不是微笑功能

当您在将实例添加到舞台之前创建实例时,构造函数中对舞台宽度的调用将为null.你应该将它移动到添加到框架事件监听器:

package {
    import flash.display.MovieClip;
    import flash.display.Stage;
    public class smileface extends MovieClip {
        public function smileFace() {
        addEventListener(Event.ADDED_TO_STAGE, init);
        }

    public function init(ev:Event){
            this.width = stage.stageWidth/5;
            this.height = stage.stageHeight/5;
            trace("Done!");
        }
    }
}

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有