Просмотр полной версии : Размер загруженой SWF
Doctor76
24.09.2008, 12:06
Уважаемые, может кто подскажет, возможно после загрузки 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
Такая же проблема. Кто-нибудь знает решение? :)
ну в чем проблема? загружайте клип смотрите его _width и _height, если они больше каких-то пределов, скалируйте или ставьте маску. Узнать размер stage подгружаемой swf невозможно - его не существует.
MaskiShow
06.03.2009, 11:31
: (
Размеры клипа не катят - они динамически меняются при проигрывании файла, и даже на первом фрейме обычно не соответсвуют размерам stage (есть объекты, которые находятся за сценой и увеличивают размеры контейнера), о чем уже и говорили. Задать маску по этим данным невозможно.
Может есть какие-нибудь другие варианты загрузки swf файла, например чтобы в окне флеш оболочки он отображался как html страница с файлом например?
так что вам нужно тогда? если главный клип телевизор: сделайте маску по его экрану раз и навсегда одного размера, по маской поместите клип и в него уже грузите мувики для просмотра.
Добавлено через 14 минут
Да если б я знал эти размеры. проблем бы не было.
Но клиент в 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 и выставляет размер окна в размер именно сцены - вряд ли это чем-то поможет.
Буду рад, если найдутся люди, которые предложат-таки способ решения.
Проигрыватель 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:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.