as3 - 如何将多个自定义类添加到一个资产中?

时间:2010-08-02 10:15:56

标签: actionscript-3 flash

我是as3的新记忆。今天我做了一件作品,但我已经堆积了。请帮助我:
我的例子:

•我在图书馆中有一个带有连接名称的符号:box_mc

import flash.display.MovieClip;
import flash.events.Event;
import Src.smoothAnimate;

var box_is:MovieClip = new box_mc();
box_is.name = 'box_na';
addChild(box_is);

var box_is:smoothAnimate = new smoothAnimate();  // ERROR 1151 HERE

•我有一个自定义类:

package Src
    {
    import flash.display.*;
    import flash.events.Event;

    /**
     * ...
     * @author Trunglvt
     */
    public class smoothAnimate extends MovieClip
    {
        private var currentW:Number;
        private var currentH:Number;
        private var endX:Number;
        private var endY:Number;
        private var sp:Number;
        function smoothAnimate() {
            trace('trace');
        }

        public function changeSize(speed:Number, newW:Number, newH:Number) {
            trace('test');
            this.endX = newW;   // get new size
            this.endY = newH;
            this.sp = speed;

            this.addEventListener(Event.ENTER_FRAME, onFrame);  
        }
        private function onFrame(e:Event) {
            e.target.currentW = e.target.width;
            e.target.currentH = e.target.height;

            e.target.width += (e.target.endX - e.target.currentW) * e.target.sp;
            e.target.height += (e.target.endY - e.target.currentH) * e.target.sp;

            if (Math.floor(e.target.width) == Math.floor(e.target.endX) ||
                Math.floor(e.target.height) == Math.floor(e.target.endY)) {
                //stop function enterFrame here;
                removeEventListener(Event.ENTER_FRAME, onFrame);
            }
        }
    }
}

但运行时出错:

1151: A conflict exists with definition box_is in namespace internal.

我希望在Flash运行时,box_is将在阶段添加,按功能changesize调整大小。

请帮助我。 谢谢。

1 个答案:

答案 0 :(得分:2)

当你说:

var box_is:smoothAnimate = new smoothAnimate();

此声明将出错。您之前说过:

,之前已宣布box_is
var box_is:MovieClip = new box_mc();

两个var在同一范围内的名称不能相同。

如果您想重复使用box_is符号,请不要使用var。只需重新分配box_is

box_is = new smoothAnimate();