Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   getVersion() и исполнение кода (http://www.flasher.ru/forum/showthread.php?t=84458)

sem1313 31.08.2006 16:20

getVersion() и исполнение кода
 
Модераторы, я честно не знал как озагалвить тему... потому как без понятия в чем трабла...
Кто нить знает или сталкивался с таким(?):

В первом кадре:
Код:

var FLVer:String = getVersion();

Plugin_mc._visible = false;
Launch_mc._visible = treu;
if(FLVer >= "WIN 8,0,00,0") {
        gotoAndStop(2);
}
if(FLVer < "WIN 8,0,00,0") {
        gotoAndStop(4);
}
stop();

И есть movieClip - Launch_mc, который находится с первого по 4-ый кадр. Т.е. он в любом случае должен быть на timeline...

Во втором кадре:
Код:

var xRes = System.capabilities.screenResolutionX;
var yRes = System.capabilities.screenResolutionY;

getURL ("javascript: var

win=window.open('My.htm','MyPage','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width="+xRes+",height="+yRes+",top=0,left=0');");
stop();

В данном случае код должен работать так - если версия плеера выше чем 8.00, то есть переход на второй кадр, в котором вызывается java - функция, которая открывает flash в поп-ап коне... И В ЛЮБОМ СЛУЧАЕ
мувик Launch_mc - должен быть показан в ПАРЕНТ окне из которого было вызванно открытие нового окна...
Но дело в том, что в IDE при тестировании мувик Launch_mc показывается всегда(!)... а если открываешь html, который содержить в себе эту swf, то новое окно открывается ВСЕГДА, а вот надпись(мувик) Launch_mc есть не всегда(!!)... При открытиии несколько раз подрояд html-файла... бывает таккая ситуация, что мувик Launch_mc - пропадает(!!!)... Здесь очень много точек, потому что я не в силах понять куда он
может деваться... Ведь мы его не перемещаем и даже alph'у и visible не меняем.....

Прошу, заметить, что в IDE все работает корректно(по крайней мере не встречал, что бы мувик Launch_mc был не видим), а вот в Explorer - байда какая то... то есть, то нет... И мой мозг отказывается понять в чем причина...

iNils 31.08.2006 16:41

Сравнивать строки задача не благородная, почему не сделать так?
Код:

var FLVer:Number = Number (getVersion ().substr (4).split (",")[0]);
if (FLVer >= 8) {
        trace ("больше или равно 8");
} else {
        trace ("меньше 8");
}


etc 31.08.2006 16:44

Лучше _level0.$version юзать, я думаю... Просто потому что getVersion() не было в пятёрке.

sem1313 31.08.2006 17:29

iNils, хоть ты мне и поставил плюсик(можно поспорить за что), но все равно спаибо... Хоть я так и недогнал в чем разница - FLVer >= "WIN 8,0,00,0" и FLVer:Number = Number (getVersion ().substr (4).split (",")[0]) для Flash...

Но это работает(!)... По крайней мере 15 раз подряд запустил html, и launch_mc всегда был на месте...

Спасибо...

etc 31.08.2006 17:40

Цитата:

Сообщение от sem1313
Хоть я так и недогнал в чем разница - FLVer >= "WIN 8,0,00,0" и FLVer:Number = Number (getVersion ().substr (4).split (",")[0]) для Flash…

Такая же разница, как если бы ты сравнивал:
корова >= табуретка

Ты сравниваешь строки, а не числа, а строки сравнивать нельзя.

sem1313 31.08.2006 18:14

to _etc
Это понятно...

Но в первончальном варианте я сравнивал
if(FLVer >= "WIN 8,0,00,0") - это наверено не корова и не табуретка...

Я не спутал c FLVer:Number = Number (getVersion ().substr (4).split (",")[0])
т.к. результат у них будет разный...

Я не про результат, а про то что почему Flash так по разному воспринимает:

FLVer >= "WIN 8,0,00,0" и

FLVer >= 8

Вот это интерсено... Я бы даже сказал не про Flash, а про html...

Ведь именно в его обертке случилась такя ситуевина...

etc 31.08.2006 18:28

"WIN 8,0,00,0" не может быть больше/меньше/равно строке "WIN 7,0,00,0"
Ни в одном языке программирования такое сравнение не будет корректно.
Строки и числа — разные вещи. Ты не можешь сравнить два слова, так?
А числа можешь. Поэтому и сравнивать надо числа.

iNils 31.08.2006 18:32

Если вдруг выйдет 10-ая версий, то сравнение
Код:

trace ("WIN 10,0,0,0" >= "WIN 8,0,00,0");
даст false

sem1313 31.08.2006 18:48

to _etc:

Объясню подробнее


Мне интересно в чем разница

Код:

var FLVer:String = getVersion();
На выходе получим - FLVer = "WIN 8,0,00,0"

и

Код:

FLVer:Number = Number (getVersion ().substr (4).split (",")[0])
На выходе получим 8.

для Flash...

Естественно я буду в каждом случае сравнивать ВЫХОД с соответствующим парметром...

И в первом посте я указал, что сравниваю не с числом, а с строкой

Код:

if(FLVer >= "WIN 8,0,00,0")

sem1313 31.08.2006 18:51

Код:

"WIN 8,0,00,0"
Ни че себе, т.е. это не сторка(?)...

А что тогда это?


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

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