![]() |
Цитата:
|
В принципе - баг, надо искать Флазм и смотреть почему так происходит. На сколько я знаю, флеш никогда не использовал unsafe pointers, так что причина скорее всего в вом, что оно где-то число принимает за строку... кстати, надо еще MTASCом попробовать скомпилить и посмотреть, что будет.
Хмм... MTASC такой же результат выдает, значит, скорее всего бага плеера... |
wvxvw, спасибо за ответ.
Хоть и не понятно в чем конкретно баг заключается, но теперь буду осторожней с такими выражениями обращаться. |
Кстати, врезультате тестов появилось следующее:
Код AS1/AS2:
Код AS1/AS2:
Самое интересное то, что если вычитать а не складывать, то результат опять же будет неправильным... и если последовательно трейсить trace(a) в первом цикле, то видно, что иногда массив не изменяется... вобщем, скорее всего какай-нибудь пропущенная команда в сгенерированом коде, либо плеер неправильно читает команду (забывает при каких-то обстоятельствах)... |
Цитата:
|
Онa все равно приватная :p
На самом деле самое глупое в этом - это ошибки кидать / ловить в AS2. В большинстве случаев плеер их сам отрабатывает и не дает до них добраться... :( т.е. если функция вернулась с ошибкой а ее вызвала другая функция, то в третей функции, которая вызвала вторую про ошибку уже все забыли, просто где-то undefined будет... Страшно подумать, что на этом когда-то что-то всерьез писалось... Хех, еще обиднее - оказалось, что кастовать по ссылке нельзя - очевидно компилятор не умел этого делать, просто раньше я даже не задумывался о необходимости такой штуки :) |
Код AS3:
|
Цитата:
k выпадает каждую итерацию. И в сумме должно получиться 100 по идее. |
Код:
movie 'loop.swf' // flash 9, total frames: 1, frame rate: 12 fps, 550x400 pxНе знаю, я не вижу почему бы второй вариант должен так странно себя вести, скорее всего - баг плеера а не компилятора. (Хотя первый вариант все равно оптимальнее). |
Собственно все и так ясно.
Выражение Код AS1/AS2:
Код AS1/AS2:
С b все ясно, так как "k" в выражении Код AS1/AS2:
В avm2 переписали инкремент, поэтому левая часть для a берется из правой части. |
| Часовой пояс GMT +4, время: 11:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.