Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Вшивание и работа с swf во Flex (http://www.flasher.ru/forum/showthread.php?t=150291)

KOT_as_User 09.02.2011 13:06

Вшивание и работа с swf во Flex
 
Есть такой вопос, создаю приложение на Flex, хотел бы вшить туда флешку и пользоваться её функциями. И вообще можно ли использовать проекты ActionScript 3, во Flex'е? Как работать с вшитой swf?

wvxvw 09.02.2011 14:18

Если целую флешку - я делаю примерно так:
Код AS3:

package com.gixoo.ashleyboo.resources
{
        import flash.utils.ByteArray;
        import flash.display.Loader;
        import flash.events.Event;
        import flash.system.LoaderContext;
        import flash.system.ApplicationDomain;
 
        [Embed(source="../../../../../assets/ashley.swf", mimeType="application/octet-stream")]
        public class AshleybooRes extends ByteArray
        {
                private var _loader:Loader = new Loader();
 
                public function AshleybooRes() { super(); }
 
                public function load(handler:Function /* Event->void */ ):void
                {
                        var context:LoaderContext =
                                new LoaderContext(false, ApplicationDomain.currentDomain);
                        this._loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handler);
                        this._loader.loadBytes(this, context);
                }
        }
}

А вообще способов куча...
> И вообще можно ли использовать проекты ActionScript 3, во Flex'е?
А что такое Flex, если не ActionScript 3? Или вы в нем HTML + JavaScript пишете?

AntonSurkont 09.02.2011 14:23

Для того, чтобы работать с вшитой во Flex флэшкой можно в ее главном классе (в конструкторе) написать
Код AS3:

//Для того чтобы Flex проект мог ловить события от этой флэшки
Security.allowDomain("localhost");

не забыть про
Код AS3:

import flash.system.Security;
import flash.net.SharedObject;

и еще вроде бы нужно чтобы папка bin-debug Flex-проекта находилась на локальном сервере.

Далее вшиваем флэшку в Flex-проект при помощи SWFLoader
Код AS1/AS2:

<mx:SWFLoader source="SmallCalendar.swf" id="Loader"/>

Код AS3:

import flash.net.SharedObject;
 
//Будем получать уведомление каждый раз когда пользователь кликнул по SWF-ке
Loader.addEventListener(MouseEvent.CLICK,clickListener);
 
//Обмен переменными между флэшкой и Flex-проектом
var i:Number=Object(Loader.content).day; (day - pablic переменная во флэшке)

Добавлено через 5 минут
У меня появился вопрос в тему.
Подскажите плиз кто-нибудь как сделать так, чтобы эта вшитая флэшка была с прозрачным фоном?

alatar 09.02.2011 15:15

Цитата:

Для того, чтобы работать с вшитой во Flex флэшкой можно в ее главном классе (в конструкторе) написать
Не нужно.
Цитата:

не забыть про
Забыть.
Цитата:

и еще вроде бы нужно чтобы папка bin-debug Flex-проекта находилась на локальном сервере.
Не нужно.
Цитата:

Далее вшиваем флэшку в Flex-проект при помощи SWFLoader
Вы ее загружаете, а не вшиваете.

Добавлено через 25 минут
По-теме. Или как советует wvxvw или так:
Код AS3:

[Embed(source='mySwf',mimeType='application/octet-stream')]
public var MySwfClass:Class;
...
mySwfContainer.source = MySwfClass;
...
<mx:Image id="mySwfContainer"/>

К флешке обращаться через mySwfContainer.content

KOT_as_User 09.02.2011 15:44

Цитата:

А вообще способов куча...
> И вообще можно ли использовать проекты ActionScript 3, во Flex'е?
А что такое Flex, если не ActionScript 3? Или вы в нем HTML + JavaScript пишете?
Нет пишу на AS3, но вот только, только начинаю=) Спасибо за ответ!!!

Добавлено через 4 минуты
Спасибо, wvxvw и Вам Alatar. Сегодня обязательно всё это попробую!)

Добавлено через 42 минуты
Еще пара вопросов, думаю в тему.

Первый вопрос во вшитой флешке будут функции public. Когда я вшивал swf в проектах AS3, всё работало, будут эти ф-и работать во Flex'овском проекте?

И второй вопрос swf-ка осушествляет работу с сервером(запрос-ответ) методами GET и POST, не нарушится ли работа с сервером во вшитой swf?

alatar 09.02.2011 16:33

Проверьте, мы же не знаем, что вы в ней написали. Должны работать.


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

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