PDA

Просмотр полной версии : flex и swf


MaxD
04.07.2007, 15:55
Неужели никак нельзя swf -ке, подгруженной swfLoader-ом сказать
play() (или gotoAndPlay()) ???

etc
04.07.2007, 16:01
А swf-ка какой версии?

MaxD
05.07.2007, 17:11
Flash 8 AS2. А есть разница?

etc
05.07.2007, 17:17
Принципиальная. Во flex — AS3.
Взаимодействовать со старыми роликами можно только посредством LocalConnection.

MaxD
05.07.2007, 17:18
Кстати, подскажите, где можно посмотреть пример взаимодействия Flex - Flash через localConnection ? У меня почему-то флешом флексовые функции нормально запускаются, а наоборот не хочет.

etc
05.07.2007, 17:20
Потому что LocalConnection — односторонний. Нужно создавать второй LocalConnection, работающий в обратную сторону.

MaxD
05.07.2007, 17:31
:-) Это понятно. Вот он, почему-то, работать не хочет.

etc
05.07.2007, 17:36
У меня все прекрасно работало.

MaxD
05.07.2007, 18:04
Есть пример?

etc
05.07.2007, 18:08
Нету. И собирать его, в общем-то, некогда.
Будет время — напишу.

MaxD
05.07.2007, 18:12
А какой-нибудь туториал на руском?

etc
05.07.2007, 19:25
Я не пользуюсь русскоязычными туториалами.

MaxD
18.07.2007, 15:08
Еще вопрос.
Есть mxml, есть подгружаемая в нее swf. Я отправляю данные из одной в другую(например, отправляет mxml). В mxml пишу ...send, в swf - ...connect.
Вопрос: в то время, когда выполняется local_connection.send в swf-ке уже должен быть запущен connect? Или send должен запускаться, пока в swf не запустится connect? Как оно вообще работает?

etc
18.07.2007, 15:17
mxml в swf не существует.
connect должен быть произведен раньше, чем send.

baron27
18.07.2007, 15:32
http://nodesign2005.narod.ru/tutorials/as2_flex2.html

MaxD
18.07.2007, 15:54
mxml в swf не существует.

:umnik2:

Еще вопрос.
Есть mxml, есть подгружаемая в нее swf.

То есть в mxml (Flex) подгружается swf.

to baron27

спасибо за ссылку, попробую разобраться.

Pow R. Toc H.
18.07.2007, 16:37
а где можно прочитать, как можно использовать flash на as3 во flex?

screamge
18.07.2007, 17:29
почему людям лень искать, не поймууу...
АС2 свф и Флекс:
http://weblogs.macromedia.com/pent/archives/2006/07/using_actionscr.cfm
АС3 свф и Флекс:
http://weblogs.macromedia.com/pent/archives/2007/04/using_actionscr_1.cfm

MaxD
20.07.2007, 11:58
Потому, что эти примеры, давно скачанные, крайне простые, плюс работают через раз. Из флеша во флекс приходят данные нормально, а флексом звездочка тормозится хорошо если один раз из пяти.

Плюс ко всему, то, что
connect должен быть произведен раньше, чем send.
я узнал только на этом форуме. В примере этого нет. :rtfm:

screamge
20.07.2007, 12:13
В примере нет так как это и так вроде как понятно исходя из здравой логики.
Ну так решение было найдено или вопрос до сих пор актуален?

etc
20.07.2007, 13:10
MaxD, ну дык, а если логически подумать? Куда он будет слать, если соединение ещё не открыто?

MaxD
25.07.2007, 11:34
:quiet: Просто с localConnection-ами не работал. И логически можно подумать: куда он будет коннектится, если еще ничего не произошло, никто ничего не отправлял... ;)

OlenKa
26.07.2007, 18:10
Не хочу создавать еще одну тему, так как у меня вопрос тоже о взаимодействии flex и swf. Задача следующая: у есть два swf файла, к примеру 1.swf и 2.swf. Первый файл посредством loadMovie грузит второй файл. Во Flex загружаться будет файл 1.swf. Задачка в том что из флекса второй файл в 1.swf не загружаеться. Кто-то сталкивался с подобной задачей или может есть какие идеи?

etc
26.07.2007, 18:17
Flex не существует, сколько раз уже твердили. Существует только Flash.
По объяснению непонятно, что куда грузится и зачем.

OlenKa
26.07.2007, 18:49
а что же тогда такое flex по-вашему? просто интерестно. А насчет того что куда подгружаеться: в mxml компоненте (если так понятнее звучит) через swfLoader подгружаеться файл swf который в свою очередь подгружает в себя другой swf файл, например file2.swf. В результате подгрузки file2.swf не происходит.
Иследуя эту проблему заметили что если file2.swf подгружать в root то подгрузки не происходит, но если он будет загружаться в movieClip тогда подгрузка произойдет успешно... вот такие пироги

etc
26.07.2007, 18:55
Flex — это фреймворк. Набор компонентов и классов, все. А mxml конвертируется в AS3-класс на этапе компиляции.
Подгружаемый ролик в SWFLoader какой версии?

OlenKa
26.07.2007, 18:58
ролик 8-ой версии.
а Flex все-таки существует ;)

etc
26.07.2007, 19:03
Нет, не существует.
http://flash-ripper.com/archives/001669.php для самообразования.

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

OlenKa
26.07.2007, 19:25
хм... как же не имеют если я подгрузила? чудо?
А насчет флекса - дяденьки из Adobe (может даже тетеньки) трудилися создавая такой продукт как Flex, а вы им "Flex не существует"? ну как-то обидно за дяденек :) (и возможно тетечек)

xpi100
26.07.2007, 19:34
если всё наконец в swf kakaя разница

OlenKa
26.07.2007, 19:36
xpi100, интерестно подмечено ;)

etc
26.07.2007, 19:40
хм... как же не имеют если я подгрузила? чудо?
А насчет флекса - дяденьки из Adobe (может даже тетеньки) трудилися создавая такой продукт как Flex, а вы им "Flex не существует"? ну как-то обидно за дяденек :) (и возможно тетечек)
Флекс существует для программиста и точка.
Насчет не имеют возможности привожу цитату из хелпа дословно:

The AVM1 content cannot load files into levels. For example, it cannot load files by calling loadMovieNum("url", levelNum).

OlenKa
26.07.2007, 19:44
:) да оставьте вы флекс в покое, я шучу а вы так серьезно это воспринимаете. Мы же с вами все-таки программисты и он для нас существует ;). Собственно проблема с загрузкой как была так и осталась. Если найду решение обязательно отпишу сюда же.
Насчет загрузки: наверно мы друг друга не так поняли ;)

etc
26.07.2007, 19:46
Загрузкой данных занимается ролик восьмой версии? Если да, то он этого делать не может.

OlenKa
26.07.2007, 19:52
я сегодня уже убегаю. Завтра попробую более подробно рассказать что происходит, возможно где-то что-то не точно сказала. лучше наверно будет выложить исходник для наглядности

xpi100
26.07.2007, 19:59
наверно _etc скажет 4то опят не 4итал тему

вот 4то:
попробуи 4ерез URLStream ->ByteArray->LOader

lumumba
27.07.2007, 13:27
а если я гружу AS3 swf'ку то по идее, я могу без проблем вызвать функции этой swf, не так ли?

etc
27.07.2007, 13:30
наверно _etc скажет 4то опят не 4итал тему

вот 4то:
попробуи 4ерез URLStream ->ByteArray->LOader
Скажу. Не читал и не понял ничего.

lumumba, в принципе да.

lumumba
27.07.2007, 13:41
а вот как?
с помощью LocalConnection все работает
а как без LocalConnection?

etc
27.07.2007, 13:42
А что мешает обратиться к свойству content у Loader?

lumumba
27.07.2007, 13:52
я так и делал. Он при компиляции на ошибку ругался

оказывается надо просто забить и жмакать Continue :)

пардон....
не работает:(

etc
27.07.2007, 13:55
Я, к сожалению, не ясновидящий и не гадалка, поэтому я не знаю, что именно вы загружаете, как загружаете и как пытаетесь использовать.

lumumba
27.07.2007, 14:11
в _root (на первом кадре)
var testFunction= function(text:String):String{
trace(text);
return text;
}
во флексе гружу в SWFLoader с id="loader", на событие complete вызываю loader.content.testFunction();

при компиляции говорит что ошибка: Call to a possibly undefined method testFunction

etc
27.07.2007, 14:13
Какой _root в AS3? Я уже не говорю о том, что никакого кода в кадрах быть не должно.

lumumba
27.07.2007, 14:15
да? во Flash CS3 такого уже нет?
прошу прощения
пошел читать доки

etc
27.07.2007, 14:21
Во Flash CS3 я имел ввиду ActionScript 3 проект, а не AS2. Более того, хоть в AS3-проекте есть возможно писать код в кадрах, лучше этого не делать и все писать в классах.

lumumba
27.07.2007, 14:27
все теперь понял
оказца есть еще Document Class

lumumba
27.07.2007, 15:36
ну вот написал я Document Class с public function testFunction
компилирую в swf
гружу в Flex
и как теперь вызвать testFunction? SWFLoader.content... и что дальше?

etc
27.07.2007, 15:50
Необходимо использовать интерфейс (точнее, правильнее).
Набросал примерчик во Flash CS3 (запускать Flex было лень), но суть ясна.

lumumba
27.07.2007, 16:05
info.content['hello']();
как я сам не догадался:(

но раз // Не стоит так делать
то и не надо

большое спасибо!!!:drinks:
наверное в конец затюкал вас ...:p

etc
27.07.2007, 16:07
Лучше все же использовать интерфейс. К весу основного swf он почти ничего не добавит, зато можно безболезненно вызывать нужные методы.

xandev
06.08.2007, 11:09
Как заставить дружить AS2 и AS3? SWFBridge вам в помощь… (http://blog.wbsv.ru/?p=249#more-249)

etc
06.08.2007, 12:52
xandev, как ваша ссылка относится к обсуждаемой теме?

MaxD
11.01.2008, 12:06
ок, а если swf скомпилина под флешплеер 9 AS3? в swf нет ныкакого кода, только анимация? Как ей управлять?

baron27
11.01.2008, 13:04
http://gorbatov.blogspot.com/2007/09/9.html
Там в комментах написано, как обращатья к мувиклипу по имени напрямую без функций доступа.

MaxD
11.01.2008, 14:33
Спасибо. С FlashPlayer9 понятно. Вот что со старыми swf-ками делать?

Alexandor1984
15.01.2008, 16:34
Вопрос по swf(as3) - swf(as3).

Есть event.swf которая умеет генерит событие "customEvent". Когда я подгружаю event.swf в main.swf и подписываюсь на событие "customEvent", то обработчик не срабатывает.

Почему так?

Вопрос снят. Спасло bubbles = true при генерации события.

Tavy
16.05.2008, 13:18
Можно ещё минуточку вашего внимания?

С тем что флекса не существует я уже смирилась :)

Но вот такой вопрос: в приложение написанное с помощью флекса подгружаются с помощью SWFLoader две swf-ки - первая написана во флеше AS3, вторая во флексе.

Обе содержал простую функцию, которая выводит сообщение. Но из первой swf-ки функция вызывается нормально, из второй - нет.

Вызов:

<mx:SWFLoader y="0" source="http://localhost/Flex/files/Test.swf" id="TestSWF" autoLoad="true" x="321" complete="onLoad()"/>
...
public function onLoad():void
{
TestSWF.content['hello']();
}

Код первой swf-ки (да, знаю что в кадре размещать код плохо)

function hello ()
{
trace("hello!");
}

Код второй:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function hello():void
{
trace("Hello!");
}
]]>
</mx:Script>

</mx:Application>

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

Property hello not found on _Test_mx_managers_SystemManager and there is no default value