PDA

Просмотр полной версии : Глюк при доступе к объектам расположенным на таймлайне Мувиклипа?


Belevich
16.01.2007, 18:50
Есть мувик, допустим в нём 3 ключевых кадра, на каждом из которых лежит Shape. Клип связан с классом


package {
import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.events.Event;

public class ClipTest extends MovieClip {

public function ClipTest():void {
addEventListener(Event.ENTER_FRAME,enterFrame);
gotoAndPlay(1);
}

function enterFrame(event:Event):void {
trace("Enter frame: ",currentFrame);
var shape:DisplayObject = getChildAt(0);
if (shape) {
trace("Shape finded");
} else {
trace("Shape is null!!!!!!!!!!");
}

}

}
}

Получаем, что когда клип прокручивает весь таймлайн и переходит вновь на 1ый фрейм, вложенный Shape у него null, на втором фрейме всё ок!
Это похоже на глюк, м.б. я чего-то не понимаю?

miramax
16.01.2007, 18:53
Логичнее объявить все шэйпы и управлять их свойствами visible.

Belevich
16.01.2007, 19:05
Логичнее объявить все шэйпы и управлять их свойствами visible.
Почему это логичнее?
Т.е. я делаю не логично, и поэтому null это нормально?
Как это объявить все шейпы? В моей Flash 9 Alpha нету возможности поставить галочку Export for action script для шейпов.

Мне интересно глюк это или это нормальное поведение MovieClip'a
У меня есть много клипов, я загружаю их из внешней библиотеки, и вставляю в Sprite. По каким-то событиям, я запускаю на проигрывание какие-то клипы, но мне нужно иметь доступ к шейпам лежащим на фреймах этих клипов (так как я знаю точно что все клипы содержат по одному шейпу на фрейме).

etc
16.01.2007, 20:29
Почему нельзя дать имена шейпам (или вроде их нельзя задать, я не смотрел)? Их глубина вовсе может быть не одинаковой.

Nirth
17.01.2007, 12:33
var shape:DisplayObject;
if (getChildAt(0)) {
shape = getChildAt(0);
trace("Shape finded");
} else {
trace("Shape is null!!!!!!!!!!");
}