Просмотр полной версии : Вшивание и работа с swf во Flex
KOT_as_User
09.02.2011, 13:06
Есть такой вопос, создаю приложение на Flex, хотел бы вшить туда флешку и пользоваться её функциями. И вообще можно ли использовать проекты ActionScript 3, во Flex'е? Как работать с вшитой swf?
Если целую флешку - я делаю примерно так:
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 флэшкой можно в ее главном классе (в конструкторе) написать
//Для того чтобы Flex проект мог ловить события от этой флэшки
Security.allowDomain("localhost");
не забыть про
import flash.system.Security;
import flash.net.SharedObject;
и еще вроде бы нужно чтобы папка bin-debug Flex-проекта находилась на локальном сервере.
Далее вшиваем флэшку в Flex-проект при помощи SWFLoader
<mx:SWFLoader source="SmallCalendar.swf" id="Loader"/>
import flash.net.SharedObject;
//Будем получать уведомление каждый раз когда пользователь кликнул по SWF-ке
Loader.addEventListener(MouseEvent.CLICK,clickListener);
//Обмен переменными между флэшкой и Flex-проектом
var i:Number=Object(Loader.content).day; (day - pablic переменная во флэшке)
Добавлено через 5 минут
У меня появился вопрос в тему.
Подскажите плиз кто-нибудь как сделать так, чтобы эта вшитая флэшка была с прозрачным фоном?
Для того, чтобы работать с вшитой во Flex флэшкой можно в ее главном классе (в конструкторе) написать
Не нужно.
не забыть про
Забыть.
и еще вроде бы нужно чтобы папка bin-debug Flex-проекта находилась на локальном сервере.
Не нужно.
Далее вшиваем флэшку в Flex-проект при помощи SWFLoader
Вы ее загружаете, а не вшиваете.
Добавлено через 25 минут
По-теме. Или как советует wvxvw или так:
[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?
Проверьте, мы же не знаем, что вы в ней написали. Должны работать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.