Здравствуйте, гость ( Вход | Регистрация )
![]() ![]()  | 
	
			
			  4.06.2009 - 14:33
			
				 Сообщение
					#1
					
				
			 
		 | 
	|
| 
        	
				
        			 Ветеран конференции ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 709 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144  | 
       
			
			 
				Небольшой пример (без заумностей), как создавать и использовать "виртуальные" клипы swf на AVM2. 
			
			
					
		1) Создаем swf который мы собираемся "виртуализировать". В данном случае это файл swf_as1.swf из исходника swf_as1.fla с простым AS1 кодом: Код onMouseMove=function(){ _x+=random(10)-5 _y+=random(10)-5 } (при движении мышки случайно гоняется черный квадрат) 2) Открываем этот swf в HEX-редакторе и копируем в 16-ричном виде в виде строки, выходит строка типа "43575309e4...9629ea" (см. аттач). Собственно именно эта строка и будет зашиваться в конечный файл. Сам swf_as1.swf нам больше не нужен. 3) Теперь пишем простенький AS3 код (файл IntroSWF.fla): Код var dataSWF="43575309e4000000789cab60608d6760e05fc0c0c0c3c8e022c80004ce4cffffffb7672e0532 3bf8199818f2f37cf34b8b537df3cb521918a631317030cc6605a90b619826c6c0c1c8c60005484c a569ac0cec5c408601880152cdedae3c8d0fa8849d11ac124c615525cbf05fc41cc86464a8907a2a afe0dcafd35021dd2afbc08d5fbd8111a48be13fa30888040241d357d6e7d5ff4d33aa493af9c52f ffd1cb1d0c6d6c6c8c40bd0c0e4025003c9629ea" var arrBytes = new ByteArray(); var myloader = new Loader(); for (var i=0; i<dataSWF.length; i+=2) { arrBytes.writeByte(Number('0x'+dataSWF.substr(i,2))); } myloader.loadBytes(arrBytes); addChild(myloader) Все! "Виртуальный клип" воссоздан и загружен.  
 IntroSWF.rar ( 11.01 килобайт )
Кол-во скачиваний: 2Довольно забавная возможность, которая открывает широкие просторы, как например использование дырки в FileReference для загрузки mp3-файлов с компа пользователя! Сообщение отредактировал chingachgoog - 4.06.2009 - 16:40  | 
	
| 
			
			 | 
	|
			
			  4.06.2009 - 19:11
			
				 Сообщение
					#2
					
				
			 
		 | 
	|
| 
        	
				
        			 Ветеран конференции ![]() ![]() ![]() ![]() Группа: Flash Zone Team Сообщений: 3833 Регистрация: 10.03.2005 Из: Киев Пользователь №: 5  | 
       
			
			 
				Виртуальные swf - это весьма интересная возможность в AS3 (AVM2). 
			
			
					
		Подобный метод может использоваться для защиты флешек, в частности для привязки флешки к определённому хосту (что ранее обсуждалось на форуме). Для этого может использоваться как сам байтовый массив, так и различные преобразования байтового массива (шифрование и дешифрование этих данных) для большей надёжности.  | 
	
| 
			
			 | 
	|
![]() ![]()  | 
	
 
  | 
		Текстовая версия | Сейчас: 21.09.2010 - 12:40 |