ActionScript математический расчет ведет себя по-разному в браузере - PullRequest
1 голос
/ 14 февраля 2012

Это действительно меня озадачивает: у меня есть небольшое приложение, которое позволяет пользователю увеличивать / уменьшать, поворачивать, переворачивать по горизонтали и манипулировать цветом фотографии.Фотография загружается через класс Loader.Приложение отлично работает в среде разработчиков, однако, если оно провалилось после проверки в браузере.Я провел небольшую отладку и заметил, что значение для одного из матричных вычислений равно положительному значению в среде разработчика, но отрицательному значению в браузере (при тех же условиях).Что мне здесь не хватает?

Вот мой код для двух функций, которые были вызваны во время моего тестирования:

    function zoomOut(e:MouseEvent):void{
    matrix = imageLoader.content.transform.matrix;
    imageLoader.content.scaleY = imageLoader.content.scaleY*.90;
    imageLoader.content.scaleX = imageLoader.content.scaleX*.90;
    statusText.text = imageLoader.content.scaleY.toString();
    if(matrix.a < 0){
    matrix.a = -1*imageLoader.content.scaleY;
    matrix.tx = imageLoader.content.width;
    }else{
        matrix.a = imageLoader.content.scaleY;
    }
    matrix.d = imageLoader.content.scaleX;


matrix.transformPoint(newPoint(imageLoader.content.width/2,imageLoader.content.height/2));
        imageLoader.content.transform.matrix = matrix;
    }

        function flipHorizontal(e:MouseEvent):void {
            matrix =imageLoader.content.transform.matrix;
            matrix.transformPoint(new Point(imageLoader.content.width/2,imageLoader.content.height/2));
    if (matrix.a>0) {
    matrix.a=-1*matrix.a;
    matrix.tx=imageLoader.content.width+imageLoader.content.x;
    } else {
    matrix.a=-1*matrix.a;
    matrix.tx=imageLoader.content.x-imageLoader.content.width;
    }
    imageLoader.content.transform.matrix=matrix;
    }

Из того, что я могу сказать, imageLoader.content.scaleY по-разному эквивалентен в среде браузера.

Большое спасибо за вашу помощь.

Джейсон

1 Ответ

2 голосов
/ 14 февраля 2012

Скорее всего, функция, работающая с loader.content, вызывается до полной загрузки образа, в результате чего значения нуля и NaN портят ваши процессы.

Попробуйте отключить эту функцию до тех пор, пока изображение не будет загружено и Loader.contentLoaderInfo не отправит событие COMPLETE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...