Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Лишний вес первого кадра (http://www.flasher.ru/forum/showthread.php?t=129311)

wvxvw 30.08.2009 00:35

Ну так классы тоже надо во второй фрейм экспортировать :)
(в тех же Publish Settings)

etc 30.08.2009 13:11

Цитата:

Сообщение от BleSSeD (Сообщение 846662)
Интересно что если закоментировать весь код во втором фрейме, то все ок, первый занимает 4кб, и все хорошо...... почему оно так?:(

Потому что это один и тот же класс.

BleSSeD 31.08.2009 16:06

Publish Settings - Flash - Settings - Export classes in frame - и стоит 2. Так что не так?

etc 31.08.2009 18:40

Не так то, что вы пишете код в кадрах.

Jivel 31.08.2009 19:24

основной таймлайн тоже является классом и компилятор весь код с ваших кадров тянет в первый кадр что вполне логично.

mooncar 31.08.2009 19:41

Цитата:

Сообщение от Jivel (Сообщение 847106)
основной таймлайн тоже является классом и компилятор весь код с ваших кадров тянет в первый кадр что вполне логично.

Это как? А что же тогда показывает Size Report, когда для каждого кадра указывает вес заключенного в нем кода AS? Для 1-го - отдельно, для 2-го - отдельно, а не весь сразу в 1-м кадре. Не понятно.

etc 31.08.2009 19:47

Цитата:

Сообщение от mooncar (Сообщение 847114)
Это как? А что же тогда показывает Size Report, когда для каждого кадра указывает вес заключенного в нем кода AS? Для 1-го - отдельно, для 2-го - отдельно, а не весь сразу в 1-м кадре. Не понятно.

Очень просто, в первом кадре код всего рутового класса. Остальные как повезет, может попадут во второй, если не упомянуты в рутовом.

mooncar 31.08.2009 19:50

У автора там import mx... идет во втором кадре... Это имеет отношение к сказанному?

etc 31.08.2009 19:54

Цитата:

Сообщение от mooncar (Сообщение 847118)
У автора там import mx... идет во втором кадре... Это имеет отношение к сказанному?

В том числе. То, что было использовано из mx.*, тоже попадёт в первый кадр.

Jivel 31.08.2009 20:04

то ---> mooncart

вот этот год на первом кадре
Код AS3:

stop();
trace (ff);
trace(this);

и вот этот на втором
Код AS3:

var ff:String;
ff="ты видиш суслика? А его еще нет";

выведет

Код AS3:

null
[object MainTimeline]

то есть трейс в первом кадре уже знает о существовании переменной которая будет создана во втором кадре.
Во втором же кадре - ей просто присваивается значение

Добавлено через 48 минут
Зачем это было сделано? =)

давайте переопределим основной класс и вобьем в поле Class --> MyRoot
и создадим файл с названием MyRoot.as в той же директории где лежит *.fla файл
с кодом

Код AS3:

package
{
        import flash.display.MovieClip;
 
        public class MyRoot extends MovieClip
        {
 
                public function MyRoot()
                {
                        trace("трейс из конструктора -->"+ff);
                }
 
        }
 
}

при трейсе видим следующее
Код AS3:

трейс из конструктора -->null
null
[object MyRoot]

первым сработал трейс конструктора вторым трейс из кадра и в третьем трейсе видим что основной таймлайн ассоциирован с нашим рут классом.
Такимо образом основной таймлайн fla файла становится своеобразной структурой управления. а код класса MyRoot.as фактически нативно приводится к виду
Код AS3:

package
{
        import flash.display.MovieClip;
//и прочие используемые в классе импорты
 
        public class MyRoot extends MovieClip
        {
                var ff:String;
//и прочие используемые в классе переменные
                public function MyRoot()
                {
                        trace("трейс из конструктора -->"+ff);
                }
//и прочие используемые в классе функции
        }
 
}



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

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