Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Чудеса gotoAndStop() в AS3 (http://www.flasher.ru/forum/showthread.php?t=132821)

Eric Gurt 21.11.2009 00:53

Чудеса gotoAndStop() в AS3
 
Вобщем вот с чем столкнулся.

Я создал символ персонажа для игры, в нем на единственном кадре написал:
Код AS3:

MovieClip(root).create_player(this); // Самосоздание игрока

Также в тот кадр впихнул несколько мувиков, на каждом кадре которых разные вариации частей тела персонажа.

На главном кадре флэшки (да, я пишу на кадрах :) ) написал это:
Код AS3:

var players:Array=new Array(); // массив с мувиками игроков
var players_total:int=0;
 
function create_player(mcc:MovieClip):void // alt
{
trace("begin of call. players_total = "+players_total);
mcc.head.eyes.gotoAndStop(2);
trace("middle of call. players_total = "+players_total);
players_total+=1;
trace("end of call. players_total = "+players_total);
trace("########");
}

Самое интересное при запуске - когда в Outout появляется вот такое:
Код:

begin of call. players_total = 0
begin of call. players_total = 0
begin of call. players_total = 0
begin of call. players_total = 0
begin of call. players_total = 0
begin of call. players_total = 0
middle of call. players_total = 0
begin of call. players_total = 1
########
middle of call. players_total = 1
begin of call. players_total = 2
########
middle of call. players_total = 2
begin of call. players_total = 3
########
middle of call. players_total = 3
begin of call. players_total = 4
########
middle of call. players_total = 4
begin of call. players_total = 5
########
middle of call. players_total = 5
begin of call. players_total = 6
########

Если из кода главного фрэйма вырезать mcc.head.eyes.gotoAndStop(2); то получается все нормально. Через дебаг увидел только то, что дойдя до смены кадра в подмувике, флэшка почему-то решает отложить выполнение функции и взяться за выполнение другой. Это баг флэша или я чего-то недопонимаю? :wacko:

SamFR 21.11.2009 01:35

Вложений: 1
Ни разу с подобным не сталкивался начиная со времён Flash 5. Видимо, вы чего-то недопонимаете :)

А также не показываете код. Что есть mcc.head.eyes? Что делает create_player() кроме того, что здесь приведено?

А вообще, при написании кода в кадрах, использовании нетипизированного доступа и приведений типа MovieClip(root), вы будете часто сталкиваться с подобными ошибками)

UPD: Ради интереса протестил. Прикрепил пример, полностью аналогичный вашему. Всё работает. Так что ошибка в чём-то другом. В чём – без кода на руках угадать невозможно...


Часовой пояс GMT +4, время: 12:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.