![]() |
|
||||||||||
|
|||||
|
ветеран форума
|
как минимум в AIR у пользователей макинтошей os - строка вида "Mac OS 10.6.1"
__________________
4am is time to rock |
|
|||||
|
Modus ponens
|
ОК, спасибо
![]() Ну, если будут жалобы - скажу ![]() package com.aditall.loading { import flash.display.Loader; import flash.external.ExternalInterface; import flash.system.Capabilities; import flash.utils.ByteArray; import flash.utils.Endian; /** * LNKSaver class. * @author wvxvw */ public class LNKSaver { // win private static const DEFAULT:String = "[DEFAULT]"; private static const BASEURL:String = "BASEURL="; private static const INTERNET_SHORTCUT:String = "[InternetShortcut]"; private static const URL:String = "URL="; private static const US_ASCII:String = "us-ascii"; // mac private static const XML_HEADER:String = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; private static const XML_DTD:String = "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">"; private static const PLIST:XML = <plist version="1.0"> <dict> <key>URL</key> <string/> </dict> </plist>; public function LNKSaver() { super(); } public static function get EXTENSION():String { if (Capabilities.os.indexOf("Windows") === 0) { return ".lnk"; } else if (Capabilities.os.indexOf("Mac") === 0) { return ".webloc"; } return ""; } public static function generateFile():ByteArray { var url:String; var ba:ByteArray = new ByteArray(); var plist:XML; if (ExternalInterface.available) url = String(ExternalInterface.call("document.location.toString")); else url = new Loader().contentLoaderInfo.loaderURL; if (Capabilities.os.indexOf("Windows") === 0) { ba.endian = Endian.BIG_ENDIAN; ba.writeMultiByte(DEFAULT, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(BASEURL, US_ASCII); ba.writeMultiByte(url, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(INTERNET_SHORTCUT, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(URL, US_ASCII); ba.writeMultiByte(url, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); } else if (Capabilities.os.indexOf("Mac") === 0) { plist = PLIST.copy(); plist.dict.string[0].setChildren(url); ba.writeMultiByte(XML_HEADER, US_ASCII); ba.writeByte(0x0A); ba.writeMultiByte(XML_DTD, US_ASCII); ba.writeByte(0x0A); ba.writeMultiByte(plist.toXMLString(), US_ASCII); ba.writeByte(0x0A); } ba.position = 0; return ba; } } } ![]() Оно вообще нигде не работает...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 03.11.2009 в 18:41. |
|
|||||
|
прикольно. а почему не работает?
ba.writeMultiByte(DEFAULT, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(BASEURL, US_ASCII); ba.writeMultiByte(url, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(INTERNET_SHORTCUT, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ba.writeMultiByte(URL, US_ASCII); ba.writeMultiByte(url, US_ASCII); ba.writeByte(0x0D); ba.writeByte(0x0A); ![]()
__________________
я могу стать всем, если только захочу |
|
|||||
|
ветеран форума
|
Цитата:
__________________
4am is time to rock |
|
|||||
|
Modus ponens
|
Цитата:
![]() А не работает !@ъ$%^!!! потому, что виндовсу нужно не просто ярлык прилепить, а еще и в регистри записать, где ярлык находится + его ИД, который непонятно как генерится... файл абсолютно один в один получается, как и тот, который эксплорер создает, просто его одного недостаточно... такая идея на корню порушилась... ![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
wvxvw, writeShort типа не рулит, да?
|
|
|||||
|
Modus ponens
|
Да как бы при чем тут... я знаю, что можно было вообще все в одну операцию сделать, это как бы для примера не принципиально, т.как он все равно не работает по другой причине.
И потом, вот скажи, мне например удобно записывать время так 1000 * 60 * 60 * 24, а кому-то удобно сразу 86400000 написать, если скорость никого не интересует - то кому какое дело? ![]()
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:04. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|