Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавленный MovieClip не стартует.. (http://www.flasher.ru/forum/showthread.php?t=157237)

SiDDD 02.06.2011 14:45

Добавленный MovieClip не стартует..
 
Может было у кого..

В самом фрейме (вне функций), после большой порции инициализации всяких переменных, добавляю клип:

Код AS3:

....
 
var mc:MovieClip = new mTest();
addChild(mc);

..клип появляется на сцене, но код внутри него не выполняется (даже 'trace' в первом фрейме 'mTest'). Ошибок никаких не выдает. Выкидываю половину данных инициализации - всё работает. Ясно, что где то вкралась ошибка, но может кто знает - чем можно спровоцировать такое зависание свежесозданного клипа?

bav 02.06.2011 14:54

Добрый совет – не пишите код в кадрах.
Попробуйте "выкинуть данные инициализации" до рабочего состояния, а потом добавлять по чуть-чуть, чтобы определить момент перехода в нерабочее состояние.

SiDDD 02.06.2011 15:09

Цитата:

Сообщение от bav (Сообщение 1000681)
Добрый совет – не пишите код в кадрах.
Попробуйте "выкинуть данные инициализации" до рабочего состояния, а потом добавлять по чуть-чуть, чтобы определить момент перехода в нерабочее состояние.

Первый фрейм - инициализация всех переменных и данных - кудаж их еще девать?

Пробую, выкидываю.. Интересует именно - КАК можно заморозить новый клип, что не стартует даже первый фрейм (но графика выводится). И не вызвать при этом ошибки :o Пробую "на кошках", в отдельном проекте, повторить не получается :confused:

bav 02.06.2011 15:37

Цитата:

кудаж их еще девать?
В главный класс приложения.

SiDDD 02.06.2011 19:02

Вложений: 1
Методом исключения добрался до ошибки.

В первом фрейме пишем:
Код AS3:

import ZZZ;                                // импортируем
 
var zzz:ZZZ = new ZZZ();                // получаем указатель
 
zzz.fnInit(this, "OK");                        // вызываем функцию из нового класса
 
var mTest:MovieClip=new m1();                // создаём новый MovieClip
addChild(mTest);

Вот код класса:
Код AS3:

package {
        import flash.display.MovieClip;
        public class ZZZ {
 
                public function fnInit(m:MovieClip, str:String):void {
                        trace("Class 'ZZZ' - fnInit. String - " + str);
                        m.mBlock.gotoAndStop(2);
                }
 
        }
}

Запускаем - 'mTest' создаётся и помещается на сцену, но не стартует.. :mad:

Если убрать из 'fnInit' код 'm.mBlock.gotoAndStop(2);' - всё проходит успешно - новый символ рапортует об успешном запуске командой 'trace'.

Может кто объяснит причину такого поведения?

З.Ы. 'mBlock' - размещен на сцене изначально.

SiDDD 02.06.2011 19:12

..и даже если вызываю ИЗ класса любую функцию размещенную на сцене или в любом клипе - стоит встретиться там команде 'gotoAndStop/Play' - получаю тот же эффект


Вытащил функцию 'fnInit' из класса - тот же эффект :confused:

dimarik 02.06.2011 21:19

Вы компилируете во Flash IDE? Там какие-то проблемы с отображением рантайм ошибок в его плеере, судя по всему.

SiDDD 02.06.2011 22:31

Цитата:

Сообщение от dimarik (Сообщение 1000804)
Вы компилируете во Flash IDE? Там какие-то проблемы с отображением рантайм ошибок в его плеере, судя по всему.

Я прикрепил проект - у вас показывает в нем какую-нибудь ошибку?

dimarik 02.06.2011 23:23

На моей домашней технике нет Flash IDE. Дорого и не нужно. С работы, может быть, посмотрю. А вы, правда, купили и пользуетесь?

SiDDD 07.06.2011 20:51

..и на этом тема упала? Может реально никто не знает ответа - или это настолько глупая ошибка, что влом отвечать? =)


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

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