![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 53
|
добрый день столкнулся с проблемой и хотел бы узнать мнения специалистов возможно ли ее решить, есть элементы представляющие собой точки сохранения, простая линия в коде она вызывает функцию в которой записывается в битмапдату для последующего сравнения на столкновения с объектом, так вот эти элементы лежат на трассе которая имеет размеры в несколько раз большие размеры чем сцена, соответственны эти элементы находятся за приделами сцены что бы они попали в битмапдату при создании ее приходится указывать размер трассы то есть больше сцены размер примерно 3000х4000 px таких элементов у меня 6-ть по всей трассе и при компиляции, пользуюсь adobe flash во флешке появляется про100 белый экран, закрываю ее тыкаю во флеше на сцену и все элементы исчезают остается только одна белая сцена, закрываю открываю все нормально, все возвращается, более того открываю откомпилированную флешку из папки и она запускается как и должна, вопрос том как можно избавится от глюка, и второй вопрос возможно можно отрисовывать не указывая такие громадные размеры, если я уменьшаю количество элементов на сцене до двух к примеру то компилятор справляется нормально
вот функция которой пользуюсь function addBoxPoint(obj:MovieClip):void{ if(debug&&boxesChekPoint.length<3){ var bmpBoxPoint:BitmapData=new BitmapData(stage.width, stage.height, false); var myMatrix:Matrix = new Matrix(); myMatrix.createBox(obj.scaleX, obj.scaleY, (obj.rotation*Math.PI/180), obj.x+mainMap.x,obj.y+mainMap.y); //new Rectangle(0, 0, ApplicationData.stageW, ApplicationData.stageH) bmpBoxPoint.fillRect(new Rectangle(0, 0, stage.width, stage.height), 0xFFFFFF); bmpBoxPoint.draw(obj,myMatrix); boxesChekPoint.push(bmpBoxPoint); } //trace(stage.width, stage.height,obj.scaleX, obj.scaleY, (obj.rotation*Math.PI/180), obj.x+mainMap.x,obj.y+mainMap.y) /*var b:Bitmap=new Bitmap(bmpBoxPoint); gameZ.addChild(b);*/ } |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 53
|
да с запятыми что то провтыкал писал на скорую руку просто
Цитата:
|
|
|||||
|
Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 53
|
на сцене нарисована линия, преобразована в символ, внутри символа написал строку кода которая вызывает функцию передовая себя в качестве параметра, не знаю как еще правильнее объяснить
Добавлено через 1 минуту Цитата:
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 53
|
попробую по другому описать проблему:
есть сцена размерами 800х600; создаю объект BitmapData заданной ширины и высоты: т.к. нельзя задать данному объекту позиционирование он размещается в позиции 0, 0, объекта в котором находится. Объект BitmapData находится в объекте у которого глобальные координаты 0, -980, соответственно объект BitmapData находится выше сцены, и принимает размер объекта который передан (к примеру 500х30) далее с помощью матрицы задаю размер и позиционирование объекта который передан в BitmapData: var myMatrix:Matrix = new Matrix(); myMatrix.createBox(obj.scaleX, obj.scaleY, (obj.rotation*Math.PI/180), obj.x+mainMap.x,obj.y+mainMap.y); получается BitmapData имеет координаты верхнего левого угла 0,0, а правого нижнего 500, 30 а объект который в нем отображен, и получил позиционирование с помощью матрицы, имеет координаты 162, 991, то есть намного ниже видимой(как я понимаю) части объекта BitmapData, и при добавления на сцену объекта я его просто не вижу, поэтому приходится при создании BitmapData указывать размеры объекта в котором он находится (3850х4245 px);, при нескольких таких процедур, создания битмапдат, происходит то что нужно исправить, вижу белый экран после компиляции и все как я понимаю засирается память, но так как я новичок в as то могу ошибаться, и мне нужно понять как можно отрисовывать иначе что бы не задавать таких громадных размеров Добавлено через 2 минуты да я знаю что плохо, но не ознакомился еще с работой в классах, при следующем проекте буду изучать работу, сейчас меня интересует другое, и я не думаю что мой вопрос решает переносом кода в классы |
|
|||||
|
Вы путаете BitmapData и Bitmap. У BitmapData нет свойства x и y - они содержат графическую информацию, но на сцену такие объекты поместить нельзя.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 53
|
я не пытаюсь поместить на сцену с помощью
я пытаюсь посмотреть верно ли расположились элементы по данным bitnapData |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|