Форум 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)
-   -   Размер загруженой SWF (http://www.flasher.ru/forum/showthread.php?t=116243)

Doctor76 24.09.2008 12:06

Размер загруженой SWF
 
Уважаемые, может кто подскажет, возможно после загрузки SWF, как то узнать размеры ее рабочего поля?

PgeorgyV 24.09.2008 12:20

Stage.width
Stage.height
Это Вы имели ввиду?

AlexDesinger 24.09.2008 12:27

moviecliploader ,onLoadInit, my_mc._width, my_mc._height F1 help по разделам

Doctor76 24.09.2008 12:29

Ну в принципе да.
Это и есть размеры рабочего поля.
Но SWF загружена в какой то клип. Там вот как это определить

AlexDesinger 24.09.2008 12:34

все тоже самое только пишите путь к клипу который хотите "померить" ,например clip_mc загружен в клип my_mc значит путь будет my_mc.clip_mc._height

Doctor76 24.09.2008 12:35

AlexDesinder: Не все так просто
Создаю просто пустую флешку ну к примеру 300х300
Размеры клипа mu_mc._width,,_height покажут те же 300х300

Но попробуйте тупо на сцену флешки кинуть некую картинку, превышающую размеры флешки, и посмотрите, что выдадут вам эти свойства.

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

AlexDesinger 24.09.2008 12:46

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

Doctor76 24.09.2008 12:55

Ну задачу вобщемто практически выше описал.
Вобщем создается панель, на которой потом отображается тескт. Но если в тексте встречаются ссылки на картинки(img) или клипы(swf) то некий клип их в себя грузит, и текст потом выстраивается с учетом обтекания этого клипа. С картинками все просто, а вот с swf - если все что в ней делается, или нарисовано не выходит за пределы ее рабочей области, то все нормально, ну а если что то выходит, то вот проблемы. Клип который swf загрузил, отображает все.

PgeorgyV 24.09.2008 13:01

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

Doctor76 24.09.2008 13:11

Да если б я знал эти размеры. проблем бы не было.
Но клиент в XML сегодня одну флешку прописал, завтра другую.
Ладно, не парьтесь ребята. Буду думать альтернативные варианты...

MaskiShow 06.03.2009 11:08

Такая же проблема. Кто-нибудь знает решение? :)

Котяра 06.03.2009 11:14

ну в чем проблема? загружайте клип смотрите его _width и _height, если они больше каких-то пределов, скалируйте или ставьте маску. Узнать размер stage подгружаемой swf невозможно - его не существует.

MaskiShow 06.03.2009 11:31

: (

Размеры клипа не катят - они динамически меняются при проигрывании файла, и даже на первом фрейме обычно не соответсвуют размерам stage (есть объекты, которые находятся за сценой и увеличивают размеры контейнера), о чем уже и говорили. Задать маску по этим данным невозможно.

Может есть какие-нибудь другие варианты загрузки swf файла, например чтобы в окне флеш оболочки он отображался как html страница с файлом например?

Котяра 06.03.2009 11:40

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

Добавлено через 14 минут
Цитата:

Сообщение от Doctor76 (Сообщение 765996)
Да если б я знал эти размеры. проблем бы не было.
Но клиент в XML сегодня одну флешку прописал, завтра другую.
Ладно, не парьтесь ребята. Буду думать альтернативные варианты...

Пусть вместе с именем флэшки пишет размеры как это делается например в тегах IMG в HTML

MaskiShow 06.03.2009 11:59

Вы не поняли что нужно мне и автору темы, а пытаетесь давать советы. Прочитайте тему еще раз с самого начала, пожауйста.
Проигрыватель swf и даже редактор веб-страниц (при copy-paste в него некоторых swf файлов) узнает размер сцены swf файла - думаю, есть способ это сделать и на АС2.

Добавлено через 22 минуты
ОК, допустим вариант с заранее прописанными размерами проходит. Но нужно тогда с помощью какой-то программы автоматически создать txt файл с именем и габаритами не одной сотни флешек.. С именами проблем нет, но узнать размер в свойствах swf файла вроде-бы нельзя... Во всяком случае этого не видно в свойствах файла в виндовз.

lexa2000lexa 06.03.2009 12:23

как вы загружаете ваши swf ки?

MaskiShow 06.03.2009 13:13

а как нужно? : )

Вообще только что тут мысль пришла, что даже при известных размерах маски (то есть сцены флешек), правильное позиционирование маски с совпадением со сценой флешки нереализуемо - т.к. относительно габаритов контейнера центрировать маску неправильно - ведь объекты за сцену флешки в контейнере выступают произвольно, потому центр контейнера не есть центр сцены флешки. Думаю, вы поняли о чем я : )

Вообще, проблем бы не было, если бы флешки грузились нормально и маскированными (так, как их видно в обычном флеш-плеере), а не с выпирающими объектами по сторонам :/

lexa2000lexa 06.03.2009 13:38

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

nOobCrafter 06.03.2009 14:24

используйте мувиклиплоадер и будет вам щасте.
Цитата:

Вы не поняли что нужно мне и автору темы, а пытаетесь давать советы.
По моему это в ваших интересах что бы публика поняла то вы хотите... Чай тема не о том как ребусы решать.

alexcon314 06.03.2009 15:25

Что нужно автору топика и MaskiShow.
1. Имеем набор (~100) совершенно "левых" swf-файлов. Их Нужно подгрузить в основной swf, согласно некоторому xml-документу. Исходников "левых" флэшек нет и не предполагается, что они хотя бы даже доступны. Кто и как их делает, неизвестно. Но делают, видимо примерно так: создают флэш-документ с размером сцены, ну, скажем, 100х100. Кидают на сцену что-то, однако, что-то кидают и за пределы сцены. Зачем и почему лишние объекты за пределами сцены оставляют - неизвестно. Компилируют, как есть.

2. При подгрузке такого swf в клип-контейнер он (контейнер) получит размер не 100х100, что было бы идеально, а совершенно другой размер, включающий в себя и размеры "околосценных" объектов, загруженный таким образом swf в окне главного будет отображен целиком, вместе с "околосценными" объектами. В итоге, в главном swf все летит к чертям.

3. Накладывать маску на загруженный "кривой" swf можно, но для точной обрезки в размер нет никаких предпосылок, ибо сам размер (тот, что 100х100) неизвестен. Истинный размер замылен "околосценными" объектами. И как верно заметил MaskiShow , нет никакой возможности правильно отцентровать маску, даже если передать размер (100х100) в основной swf через xml.

4. Как это можно побороть?

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

По поводу того, как плеер узнает размеры сцены загружаемого swf и выставляет размер окна в размер именно сцены - вряд ли это чем-то поможет.
Буду рад, если найдутся люди, которые предложат-таки способ решения.

iNils 06.03.2009 15:32

Цитата:

Проигрыватель swf и даже редактор веб-страниц (при copy-paste в него некоторых swf файлов) узнает размер сцены swf файла - думаю, есть способ это сделать и на АС2.
В as2 нет такой возможности. Только в as3.

MaskiShow 06.03.2009 15:38

alexcon314, Вы совершенно правильно все расписали. Одельное Вам спасибо.
По сути вопроса - да, видимо это действительно нерешаемо. Я сам себе "клиент" :), поэтому и ищу способ сделать такой "телевизор" для флешек... Затея с треском проваливается... :D

Но опять же, повторюсь, не было бы проблем, если бы контейнер (а точнее, АС2) не рассматривал swf файл как свою собственную часть, а грузил его как обычный интерактивный файл с фиксированными габаритами...
В АС3 есть вроде addChildObject, сейчас точно не могу сказать функцию, может это возможно бы помогло (в АС3 опять же)...

Добавлено через 1 минуту
Вот, iNils подтвердил мое предположение по поводу АС3.

Добавлено через 27 часов 26 минут
:yahoo: Я сделал это, наступив на грабли, на которые уже наступали))

1)создаем контейнер с алигном в верхнем левом углу
2)грузим cont.loadMovie(flashPath)
3)флешка загружается так, что верхний левый угол ЕЕ СЦЕНЫ привязан именно к алигну независимо от того, как из нее выпирают все ее объекты
4)зная размеры сцены флешки с помощью загружаемого xml файла, создаем маску с этими размерами и маскируем наш контейнер

:D
Но может встретится такая флешка, которая сама себя разврнет на весь экран при старте - такой у нее скрипт, хоть и размеры ее сцены небольшие.

:drinks:


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

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