Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   почему так ? (http://www.flasher.ru/forum/showthread.php?t=68822)

-=VoskreS=- 06.09.2005 13:26

почему так ?
 
Есть простой код :
Код:


_root.createEmptyMovieClip('m',1);

//m._width = 100
//m._height = 100

_root.m.attachMovie('man','man',1)
trace(m._width+'  '+ m._height);

Так все работает : из библиотеки грузится и отображается мув, но если раскомментарить то что закоменчено, то ничего не отображается и последний трейс выдает 0 0. В чем дело ? Хотя мув грузится определенно, т.к. можно вызывать методы, описанные в нем.

Double 06.09.2005 13:29

попробуй изменять размеры после того, как приаттачишь к пустому мувику что-то.

KUZEN 06.09.2005 13:30

Потому что ты даёшь размеры пустому мувику, попробуй вот так
Код:

_root.createEmptyMovieClip('m', 1);
_root.m.attachMovie('man', 'man', 1);
m._width = 100;
m._height = 100;
trace(m._width+'  '+m._height);


-=VoskreS=- 06.09.2005 13:35

блин, так я про то и говорю, почему когда присваиваешь до , то вообще не отображается ?

Double 06.09.2005 13:37

ну а каков результат умножения 100 на ничего? по-моему 0 - самый логичный ответ.

KUZEN 06.09.2005 13:39

Цитата:

Сообщение от Double
ну а каков результат умножения 100 на ничего? по-моему 0 - самый логичный ответ.

Т.е. по твоему если бы мувик был размером 2х2 то при задании ему размеров 100х100 он бы по твоей логике стал бы
2х100=200 .... так что логика твоя не катит ...

-=VoskreS=- 06.09.2005 13:41

да, именно так, ноль как был так и остался. но в первом случае аттач сработал а во втором - как бы и нет... ничего не отобразилось . вот и спрашивается - почему ?

-=VoskreS=- 06.09.2005 13:46

Вообще то такая лажа встретилась мне при использовании MovieClipLoader.LoadMovie() . Мне надо было по факту загрузки мува отресайзить его изменив ему _width и _height. Пробовал вешать на onLoadComplete и на onLoadInit ресайзинг - результат тот же, т.е. как при ресайзинге перед аттачем.

KUZEN 06.09.2005 13:49

Воббще мне раньше никогда в голову не приходило задавать размеры мувика заранее ведь всё равно если ты подгружаешь мув большего размера то подружаемый растянется ...
хотя с другой стороны если допустим m._alpha = 10; то всё пучком где ни ставь ...
в принципе, твой действия не логичны, но с другой стороны не понятно почему не подгружается ...

-=VoskreS=- 06.09.2005 13:49

Хотя что интересно, если распечатать в onLoadComplete() размеры подгружаемого мува, получим 0 0 (очевидно еще как следует не подгрузился.) Но ежели распечатать размеры в onLoadInit() , то получаются ненулевые размеры, которые однако не соответствуют истинным размерам подгружаемого мува.

-=VoskreS=- 06.09.2005 13:52

Цитата:

Сообщение от KUZEN
в принципе, твой действия не логичны

Очень даже логичны. Мне надо задать размеры мува сразу после его загрузки. Как это делать, если в предназначенных для этого функциях - обработчиках событий onLoad...() это сделать не получается ?

KUZEN 06.09.2005 13:56

какой необходимостью вызван факт задания размеров до подгрузки мувика ?

Leezard 06.09.2005 14:00

1вариант onLoadInit
2.вариант на созданном объекте onEnterFrame функция:
if(this._width>0){
...
delete this.onEnterFrame();
}

-=VoskreS=- 06.09.2005 14:03

В том и суть. Я пытался изменить его размеры П О С Л Е его подгрузки, в функции onLoadInit() которая по докам срабатывает когда выполнился код в первом кадре подгруженного мува. Но это не дает результата . Ресайзинг происходит, но совершенно не так. Ежели задавать размеры в onLoadComplete() то подгружаемый мувик вовсе не отображается. Точно также как при ситуации с аттачем.

Leezard 06.09.2005 14:06

а второй вариант?

-=VoskreS=- 06.09.2005 14:06

Цитата:

Сообщение от Leezard
1вариант onLoadInit
2.вариант на созданном объекте onEnterFrame функция:
if(this._width>0){
...
delete this.onEnterFrame();
}

Дело в том, что как я уже сказал, в onLoadInit размеры стают уже ненулевыми, но они почему-то Н Е Р А В Н Ы истинным размерам подгружаемого мувиклипа.

-=VoskreS=- 06.09.2005 14:07

да, над вторым вариантом наверно стоит подумать.

iNils 06.09.2005 14:11

Цитата:

Сообщение от -=VoskreS=-
Дело в том, что как я уже сказал, в onLoadInit размеры стают уже ненулевыми, но они почему-то Н Е Р А В Н Ы истинным размерам подгружаемого мувиклипа.

Флеш определяет не те размеры которые указаны в Document Properties, а те суммарный размер объектов.
Скажем у тебя есть флешка размером 100 на 100. В ней лежит овал размером 50 на 120. Флеш при определении размера даст тебе 50 на 120.

Leezard 06.09.2005 14:16

я использовал оба варианта,
второй раньше, сейчас первый.
оба работают. второй проще в понимании, но засирает проц если объектов много.

Double 06.09.2005 18:13

это была не логика. просто аналогия. как можно задать размер пустоте?
а почему тебе не сделать пустой клип невидимым, подгрузить в него мувик, задать размеры и затем показать. не понимаю я необходимости задавать размеры до подгрузки содержимого. наверное я для этого слишком тупой.

-=VoskreS=- 06.09.2005 18:42

Вложений: 1
Вот конкретно файлы с которыми я работал .

Файлик loading.swf подгружает mc.swf.

Трейс выдает следующее :

After loader : 0 0
####onEnterFrame : 0 0
start 0 0
complete 0 0
####onEnterFrame : 51.85 116.75
init 51.85 116.75
_level0.cont
####onEnterFrame : 484.5 346.65
####onEnterFrame : 484.5 346.65
####onEnterFrame : 484.5 346.65

Таким образом как видно размеры подгружаемого мува при загрузке принимают 3 (!!!) значения (0, 0), (51.85, 116.75) и (484.5, 346.65)

Как это можно объяснить ? И как его теперь отресайзить, т.е. в какой момент ?

Double 06.09.2005 18:52

ну а тебе никогда не приходило в голову, что 51 с копейками на 116 - это размер 1 кодра твоего подгружаемого мувика? дальше рассказывать? iNils говорил.

-=VoskreS=- 06.09.2005 19:04

ёлы палы, и правда. пасиба.


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

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