![]() |
|
||||||||||
|
|||||
|
[+2 20.11.06]
[+2 23.11.06] Регистрация: Oct 2006
Сообщений: 92
|
Есть swf, который импортирован во flex. Проблема в позиционировании указателя мышки. Если swf разместить в самом верхнем левом углу, то stageX и stageY совпадают с координатами swf. Но если расположить swf в центре экрана то координаты для swf совпадать не будут. То есть, если в swf рисуется линия когда пользователь перемещает указатель мыши, то встроив swf во flex, он будет все время рисовать линию где-то ниже. Если написать swf на as2 все ок, так как используется отдельный плеер. Как сделать в as3?
Последний раз редактировалось Aleksey123; 20.11.2006 в 16:58. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А какие координаты ты берешь? stage или local?
|
|
|||||
|
[+2 20.11.06]
[+2 23.11.06] Регистрация: Oct 2006
Сообщений: 92
|
Использую stage, просто у меня в swf поле состоящее и квадратов(мувиклипов) и local здесь не получается сделать.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну само собой, нужно использовать local. Не знаю, как там насчёт globalToLocal (не смотрел), можно, в конце концов, отнять от stage координаты этой самой swf относительно stage — простое преобразование в локальные координаты.
|
|
|||||
|
[+2 20.11.06]
[+2 23.11.06] Регистрация: Oct 2006
Сообщений: 92
|
Не получается. localx покаывает координаты данного мувиклипа, а их у меня много, так как каждая клетка поля - мувиклип. Я хочу узнать над какой клеткой щас курсор находиться а получаю постоянно 1.1.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
parent.mouseX =)
Я уж не знаю, зачем там stage, когда можно даже вещать собственные координаты мыши из swf во все клетки. А там уже клетка смотрит, над ней-ли курсор… |
|
|||||
|
[+2 20.11.06]
[+2 23.11.06] Регистрация: Oct 2006
Сообщений: 92
|
Че то не догоняю. Вот создаю сетку
for(var j:int=1;j<=rows;j++){
for(var i:int=1;i<=columns;i++){
var x:int=(i-1)*spacing;// spacing - ширина квадрата
var y:int=(j-1)*spacing;
cell=new tt();// квадрат нарисованный во flash
cell.x=x;
cell.y=y;
addChild(cell);
}
}
Хочу закрасить клетку по которой кликнул мышкой private function myEvent (evt:MouseEvent):void {
var x:int=Math.ceil((evt.localX)/spacing);
var y:int=Math.ceil((evt.localY)/spacing);
trace(stage.mouseX);
trace("xlocal="+evt.localX+" ylocal"+evt.localY);
trace("x"+x+" y="+y);
var c:int=(y-1)*10+x;
if(flag&&getChildAt(c).currentFrame==1){
if(predx==x || predy==y){
getChildAt(predc).gotoAndStop(1);// закрашиваю квадрат
Что я делаю не так? |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 70
|
на крайний случай можно пользоваться stageX,Y и пересчитать в главный клип через его localToGlobal()
|
|
|||||
|
[+2 20.11.06]
[+2 23.11.06] Регистрация: Oct 2006
Сообщений: 92
|
Хм
может globalToLocal. но и так уже попробовал. Не выдает то что надо. Если бы клип был один, тогда все просто, но их у меня тут 100. а можно пример? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
FlexBuilder, ага, только, наверное, globalToLocal
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|