Ошибка № 1034 с классом документа - PullRequest
0 голосов
/ 11 октября 2011

Здравствуйте, я получил небольшой класс, и все работает отлично.Затем я добавляю его в Class Document и puff, возникает ошибка 1034.

Ошибка # 1034: сбой приведения типа: невозможно преобразовать flash.display :: MovieClip @ 2be9dba1 в fl.text.TCMText.на flash.display :: Sprite / constructChildren ()
на flash.display :: Sprite ()
на flash.display :: MovieClip ()
на Wyjazd ()
на Wyjazd / wyskok ()

Код моего класса.

package 
{
    import fl.transitions.Tween;
    import fl.motion.easing.*;
    import flash.filters.*;
    import flash.events.MouseEvent;
    import flash.display.Stage;
    import flash.display.MovieClip;

    public class Wyjazd extends MovieClip
    {

        public function Wyjazd(ar:Array=null)
        {
            if (ar!=null)
            {
                init(ar);
            }
        }

        public function init(ar:Array):void
        {
            var time:Number = 0.2;
            var offset:Number = 0;
            var posX:Array = new Array(12);
            for (var i:Number = 0; i < ar.length; i++)
            {

                var tween:Tween = new Tween(ar[i],"x",Sine.easeOut,ar[i].x,266.65 + offset,time,true);

                ar[i].addEventListener(MouseEvent.CLICK,onClick);
                posX[i]=ar[i].x;
                time +=  0.02;
                offset +=  15.25;
            }


            function onClick(e:MouseEvent)
            {
                time = 0.2;
                for (var i:Number = 0; i < ar.length; i++)
                {
                    var tween:Tween = new Tween(ar[i],"x",Sine.easeOut,ar[i].x,posX[i],time,true);      
                    time +=  0.02;
                }
            }

        }

    }
}

И Код кадра:

import flash.events.MouseEvent;
import fl.transitions.Tween;
import flash.display.MovieClip;
stop();
ofertaBTN.addEventListener(MouseEvent.CLICK, wyskok);
function wyskok(e:MouseEvent)
{
     var vektor:Array =new Array (I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII);
     var menu:Wyjazd = new Wyjazd(vektor);
}

1 Ответ

0 голосов
/ 11 октября 2011

Не могу сказать наверняка, не глядя на ваш .FLA, но ...

На основании полученной вами ошибки вы пытаетесь конвертировать текст (ваш массив векторов (I, II, III,...) к мувиклипу, и вспышка не позволит вам сделать это. Вы не можете Tween неэкранные объекты.

Я собираюсь предположить, что вы пытаетесь нацелить экземпляры, которые находятся на сцене, чьиимена экземпляров I, II, III, IV, V, ...

Вместо построения массива во фрейме попробуйте построить его в классе документа. Я создал простой пример, который работает:

package  {

    import flash.display.MovieClip;
    import flash.events.Event;
    import fl.transitions.Tween;
    import fl.motion.easing.*;


    public class arrayInst extends MovieClip {

        public var allInstanceReferences:Array;

        public function arrayInst() {
            // constructor code

            allInstanceReferences = new Array(I, II, III, IV, V);
            this.addEventListener(Event.ENTER_FRAME, moveAllReferences);
        }

        private function moveAllReferences(e:Event):void{
            for (var i:uint = 0; i < allInstanceReferences.length; i++){
                var tweenThis:Tween = new Tween(allInstanceReferences[i], "x", Sine.easeOut, allInstanceReferences[i].x, 250, 2, true);
            }
        }
    }

}

Мой массив allInstanceReference содержал ссылки на текстовое поле TLF [I] и MovieClip [II - V], а также на все объекты, перемещенные без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...