![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
игра понавиалсь )))
|
|
|||||
|
Регистрация: Apr 2008
Сообщений: 14
|
Я так понимаю что данная статься для юзеров CS3 бесполезна ибо половина кода неработает....
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А вы заставьте работать, это дополнительная сложность.
В CS3 это работает. |
|
|||||
|
Потверждаю, все вполне работоспсобно!
|
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
Непонимаю почему в примерах автора код приведенный ниже работает, а у меня нет.
Call to a possibly undefined method startDrag through a reference with static type flash.display isplayObjectContainer.Покапавшись в теме, узнал что надо приводить к типу MovieClip(parent as MovieClip) код скомпеллировался, но пределы перетаскивания остались не изменились, тоже самое наблюдается и без .parent Да и опятьже почему у меня надо приводить, а у автора и так все нормально package main {
import flash.display.MovieClip;
import flash.events.*;
import flash.geom.Rectangle;
public class background extends MovieClip {
public function background() {
parent.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
stage.addEventListener(Event.MOUSE_LEAVE, handleMouseLeave);
}
function handleMouseDown(event:Event):void {
var dx:Number = width-stage.stageWidth;
var dy:Number = height-stage.stageHeight;
var dragRect:Rectangle = new Rectangle(-dx,-dy, dx,dy);
parent.startDrag(false, dragRect);
}
function handleMouseUp(event:Event):void {
parent.stopDrag();
}
function handleMouseLeave(event:Event):void {
parent.stopDrag();
}
}
}
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Что-то мне подсказывает, что с пределами перетаскивания вы явно перемудрили в вычислениях.
|
|
|||||
|
Регистрация: Mar 2008
Сообщений: 30
|
public function background() {
parent.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
stage.addEventListener(Event.MOUSE_LEAVE, handleMouseLeave);
}
function handleMouseDown(event:Event):void {
var dx:Number = (stage.stageWidth-width)/2;
var dy:Number = (stage.stageHeight-height)/2;
var dragRect:Rectangle = new Rectangle(-dx,-dy, dx,dy);
startDrag(false, dragRect);
}
function handleMouseUp(event:Event):void {
stopDrag();
}
function handleMouseLeave(event:Event):void {
stopDrag();
}
первое parent, остальные stage в чём разница почему именно так? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что MOUSE_UP может произойти вне перетягиваемого объекта, а MOUSE_LEAVE вообще только stage слать может.
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Автор данной статьи пишет: "На примере созданной игры при большом игровом поле 800x440 и большом количестве одновременно отображаемых и обрабатываемых объектов (более 200), Flash показывает приличную производительность, что было нереально в предыдущих версиях."
У меня вопрос: а сколько (объектов) было реально в предыдущей версии (т.е. на AS 2.0)? В своей игре я использую ту же систему проверок на столкновения (по секторам). У меня 30 неподвижных объектов (которые 1 раз регятся в общих секторах и все; стены короче) и 10 - 15 подвижных (по событию enterFrame они движутся и проверяют столкновения между собой и со стенами). Только у меня не одна функция-менеджер, а все объекты сами регистрируются и двигаются. При данной статистике флэш тормозит. cacheAsBitmap совершенно не помогает. Это нормально для AS 2? Спасибо |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|