PDA

Просмотр полной версии : различие програмного рисования в MacromediaFlash и flashPlayr'e


Blind Garret
26.04.2007, 10:07
наблюдаю следующую странность:

есть скрипт рисования прямоугольника


var w:Number = this.Width / Config.scale;
var x:Number = Global.XGrid.CoordFromNode(this.EdXS) - Global.XGrid.CoordFromNode(this.StXS);
var y:Number = Global.YGrid.CoordFromNode(this.EdYS) - Global.YGrid.CoordFromNode(this.StYS);
var cP:Number = Math.sqrt(Math.pow(x,2) + Math.pow(y,2)) / w;

this.beginFill(0x000000);
this.lineTo(x,y);
this.lineTo(x - y/cP,x/cP + y);
this.lineTo(0 - y/cP,x/cP);
this.lineTo(0,0);
this.endFill();


внутри Macromedia Flash MX Professional 2004 все рисуется правильно (после компиляции в окошке ролика), если это же ролик открыт в FlashPlayer'e (v.8) ничего не рисуется. :umnik2:

Если в this.lineTo(); написать просто координаты (this.lineTo(100,200); и т.д.) и во Flash и в плеере все нарисовано, одинаковая картинка.

Подскажите, пожалуйста, что не так.

CorC
26.04.2007, 10:20
Может дело не в рисовании, а в определении x,y,cP?
Вы бы их потрейсили в 8, может что то undefined.

Blind Garret
26.04.2007, 10:25
проверял x,y,cP,w (typeof() для всех выдал number, все числа не undefined)

CorC
26.04.2007, 10:45
Хм, тогда чем это отличается от просто чисел для lineTo?
А endFill имеется? Может из-за дробности...

Blind Garret
26.04.2007, 10:53
по логике ни в чем
да имеется, скопировал не весь кусок, поправил

Жень Шень
26.04.2007, 11:58
Привет!
А как насчет синтаксиса?
Имеем Width, в 8-ке надо width
Config.scale - что это?
Имеем Global, надо _global.
И т.д.
Возможно представлен не весь код...

Blind Garret
26.04.2007, 12:36
Далеко не весь.
Config.scale - общий делитель (масштаб), свойство класса Config
Width - наследуемое свойство класса текущего mc
Global - класс, который заводит экземпляры других классов в глобальной области видимости

Грабли удалось выявить! Спасибо всем, кто ответил.
А дело было в том, что рисование проходило от осевой (this.lineTo(x,y)) влево (this.lineTo(x - y/cP,x/cP + y)), т.е. в "минус", за координатную сетку.
Вобщем пришельцы не виноваты. :) Тему можно удалить.