![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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) Все! "Виртуальный клип" воссоздан и загружен. ![]() Довольно забавная возможность, которая открывает широкие просторы, как например использование дырки в FileReference для загрузки mp3-файлов с компа пользователя! Сообщение отредактировал chingachgoog - 4.06.2009 - 16:40 |
|
|
![]()
Сообщение
#2
|
|
Ветеран конференции ![]() ![]() ![]() ![]() Группа: Flash Zone Team Сообщений: 3833 Регистрация: 10.03.2005 Из: Киев Пользователь №: 5 ![]() |
Виртуальные swf - это весьма интересная возможность в AS3 (AVM2).
Подобный метод может использоваться для защиты флешек, в частности для привязки флешки к определённому хосту (что ранее обсуждалось на форуме). Для этого может использоваться как сам байтовый массив, так и различные преобразования байтового массива (шифрование и дешифрование этих данных) для большей надёжности. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 21.09.2010 - 12:40 |