as3 - как добавить несколько пользовательских классов в один актив? - PullRequest
1 голос
/ 02 августа 2010

Я новый участник 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);
            }
        }
    }
}

, но когдаrun is make error:

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

Я хочу, чтобы при флэш-запуске, box_is будет добавлено поэтапно, изменение размера функцией changesize.

Пожалуйста, помогите мне.Спасибо.

1 Ответ

2 голосов
/ 04 августа 2010

Когда вы говорите:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...