Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.02.2014, 02:30
ty31k вне форума Посмотреть профиль Отправить личное сообщение для ty31k Найти все сообщения от ty31k
  № 1  
Ответить с цитированием
ty31k

Регистрация: Feb 2014
Сообщений: 27
По умолчанию Манипуляция контентом SWF-файла

У меня есть проект во FlashBuilder. В него я подгружаю свой свф в котором храню мувиклипы.
Теперь к сути вопроса: как мне получить доступ к той или иной переменной?как манипулировать хоть какой-то информацией в свф файле?

Старый 17.02.2014, 09:52
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
для этого вы(компилятор) должны знать, что эта свф имеет (может предоставить) для управления извне
'цивилизовано' это решается с помощью интерфейсов, т.е. описаний 'внешних обязательств' класса флешки
чисто технически можно обратится и через динамический доступ instance["property_name"], но со всем вытекающим из такого подхода гемором и ненадежностью

Старый 17.02.2014, 11:51
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 3  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
вот тут есть хороший пример http://www.murmadillo.tut.su/as3/load-swf-metod.html

Старый 18.02.2014, 02:10
ty31k вне форума Посмотреть профиль Отправить личное сообщение для ty31k Найти все сообщения от ty31k
  № 4  
Ответить с цитированием
ty31k

Регистрация: Feb 2014
Сообщений: 27
Спасибо огромное за советы, но я нашел такую штуку как MovieClipAssets...Аналогичны ли у нее функции? т.к в пользовании не такое тяжелое. А другой вариант был
Код AS3:
package
{
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.utils.ByteArray;
 
    public class embedPart1 extends Sprite
    {
        [Embed(source="data/asset.swf", mimeType="application/octet-stream")]
        private var SwfClass:Class;
        //
        public function embedPart1()
        {
            var swfBytes:ByteArray = new SwfClass();
            var laoder:Loader = new Loader();
            laoder.loadBytes(swfBytes);
            laoder.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            this.addChild(laoder);
        }
        private function completeHandler(event:Event):void
        {
            var loaderInfo:LoaderInfo = event.target as LoaderInfo;
            trace(loaderInfo.content);
        }
    }
}
Но я так и не разобрался как с байт списка достать то, что нужно

Старый 18.02.2014, 10:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>Аналогичны ли у нее функции?
аналогичны чему?
c MovieClipAssets дело не имел, но полагаю, что он дает доступ к библиотечным символам подключенной флешки для всяких флексовых нужд, пример из предыдущего поста просто способ подключения внешней флешки и к управлению ее контентом напрямую не относятся

>>Но я так и не разобрался как с байт списка достать то, что нужно
'байт список' это просто файл, в том виде, в каком он хранится на диске, зная как он устроен, можно что-то достать и 'вручную' (но сомневаюсь, что у вас такая задача), а можно скормить лоадеру (laoder.loadBytes()), а тот уже сам все достанет и выдаст в управляемом виде (MovieClip, Sprite, Bitmap)
у слову, тот же результат вы получите, загрузив файл с диска laoder.load(..)

Старый 18.02.2014, 18:59
ty31k вне форума Посмотреть профиль Отправить личное сообщение для ty31k Найти все сообщения от ty31k
  № 6  
Ответить с цитированием
ty31k

Регистрация: Feb 2014
Сообщений: 27
Цитата:
Сообщение от silin Посмотреть сообщение
c MovieClipAssets дело не имел, но полагаю, что он дает доступ к библиотечным символам подключенной флешки для всяких флексовых нужд
так это и надо)

Старый 18.02.2014, 14:42
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Если мувикам прописанны классы,то можно так попробовать:

Код AS3:
private function completeHandler(event:Event):void
{
    var loaderInfo:LoaderInfo = event.target as LoaderInfo;
    var ad:ApplicationDomain = loaderInfo.applicationDomain;
    var cls:Class = ad.getDefinition("ClassNameFromYourMovie") as Class;
    var d:DisplayObject = new cls();
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 18.02.2014, 21:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> так это и надо)
что именно это?

подключение флешки в чистом AS
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
 
	public class Main extends Sprite 
	{
		// Symbol1 - класс символа в библиотеке Assets.swf
		[Embed(source = "Assets.swf", symbol = "Symbol1")]
		public static const symbol1Class:Class;
 
		public function Main():void 
		{
			// экземпляр этого библиотечного символа
			var asset1:Sprite = new symbol1Class() as Sprite;
			addChild(asset1);
		}
	}
 
}
во флексе тег
Код AS3:
[Embed(source = "Assets.swf", symbol = "Symbol1")]
public static var symbol1Class:Class;
тоже создаст symbol1Class, только это будет не Sprite или MovieClip, а MovieClipAssets
обертка в виде MovieClipAssets нужна для каких-то там именно флексовых забубеней..

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

Старый 18.02.2014, 23:15
ty31k вне форума Посмотреть профиль Отправить личное сообщение для ty31k Найти все сообщения от ty31k
  № 9  
Ответить с цитированием
ty31k

Регистрация: Feb 2014
Сообщений: 27
Огромное спасибо silin, это именно то, что я и хотел узнать)

Старый 23.02.2014, 13:41
ivaniyses вне форума Посмотреть профиль Отправить личное сообщение для ivaniyses Найти все сообщения от ivaniyses
  № 10  
Ответить с цитированием
ivaniyses
 
Аватар для ivaniyses

Регистрация: Dec 2013
Адрес: Барабинск
Сообщений: 137
Отправить сообщение для ivaniyses с помощью Skype™
Для этого я делаю панель управления, в которой можно уже изменить любую переменную.
__________________
trace("Я нуб");

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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