Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   ActionScript 3 с нуля (http://www.flasher.ru/forum/showthread.php?t=92301)

DRAGOnoid 20.09.2007 10:44

о том и реч. Я говорю что тоже с тобой согласен, что в других приложениях всё гораздо проще и как ты сам говоришь удобно использовать клаву и 2 кнопки мыши. А на счёт КПК я имел ввиду что там так дело не прокатит. Я же не на С++ разрабатываю а на флеше - ведь так? Вот и получается что так же круто как везде - технически не получится круто сделать у себя :(

ладно от темы что то как то ушли =) попробую что нить сделать сначала а потом думать. А пока вопросов не имею - спасибо за советы :)

BlooDHounD 20.09.2007 13:41

я говорю о том что прикручивать кнопки это дело 3е. сперва надо сделать что бы функционировало всё с мышкой/стилосом/точпадом и одной левой кнопкой.

riden 21.09.2007 00:24

Цитата:

А как отследить клик колёсика? Если такое вообще реально?
Вообще то есть кое-какой способ реализации обработки нажатия третьей кнопки мыши и правой кнопки мыши в AS3.
В AS3 мувик грузится AVM1 (мувик с AS2 кодом) - RightClickAVM1.swf.
RightClickAVM1.swf содержит код на AS2:
Код:

//псевдо-код
var bd:BitmapData = new BitmapData(1,1,false,0xF);
{добавляем bd на сцену}
for(var i:int=0;i<n;i+=1){
if(Key.isDown(i)){ меняем цвет bd на 0xi }
}

В AS3 мувике - допустим следующий код:
Цитата:

//псевдо-код
loader.load(RightClickAVM1.swf);//AVM1
...................................................
var avm1:AVM1Movie = loader.content;
var bd:BitmapData = new BitmapData();
bd.draw(avm1);//перерисовка работает мгновенно, ибо BitmapData перерисовывает BitmapDat-у
..........................
анализируем цвет bd и узнаем какая клавиша была нажата
...........................
Я то это не пробывал. Но думаю работает.
У меня есть подозрения, что класс Key в AS2 может слушать любые устройства ввода (джойстики). Ведь он слушает все клавиши мыши.
Никто не пробовал (джойстики)? //обратите внимание Key.isDown(i) - читает все, а Key.getCode() - возвращает только клавиши клавиатуры (и то не все).

etc 21.09.2007 00:36

riden, мегакод, но, как бы, есть нечто получше. Правда, не совсем то, но из этой же оперы.

riden 21.09.2007 01:56

Не, я пишу про правую клавишу мыши и клик колесика в AS3.
Можно вместо этого
Код:

for(var i:int=0;i<n;i+=1){
if(Key.isDown(i)){ меняем цвет bd на 0xi }
}

вот это:
Код:

//псевдо-код
if(Key.isDown(2)){меняем цвет bd на 0x2//правая кнопка}
if(Key.isDown(4)){меняем цвет bd на 0x4//средняя кнопка}
}

А for я привел, так как считаю, что возможно Key слушает джойстики тоже. //проверить немогу

etc 21.09.2007 02:01

Я имел ввиду, что делать битмап и определять цвет клипа — изврат. Есть же нормальный вариант с LocalConnection и без необходимости загрузки swf извне, я его привел.

DRAGOnoid 24.09.2007 17:47

возник ещё вопрос из ряда "на засыпку".
Допустим мы программно что-то рисуем, создаём класс Sprite или класс унаследованный от него.
например
this.menuWindow = new MenuWindow();
затем мы добавляем его на сцену
addChild(this.menuWindow);

Чтобы удалить дисплей объект мы используем removeChild. В этом случае у нас удаляеттся только вид объекта но не сам объект. Это хорошо. Но у нас остался тот же visible=false. Который действует почти так же.
Вот и спрашивается в каких случаях лучше использовать removeChild а в каких visible=false, в чём их разница, и что вообще можете посоветовать по этому поводу?

DRAGOnoid 24.09.2007 17:54

блин сам подумал и понял одну вещь =]
при removeChild - не будет доступов типа parent. =]

но всёравно хотел бы ещё ваши мнения послушать

BlooDHounD 24.09.2007 18:20

Работа с объектом при visible=false остаётся точно такой же. граници родителя считаются с учём клипа и т.д. при visible=false объект остётся дитём парента и учавствует во всех операциях, а так же, если надо постоянно показывать и прятать предмет, лучше использовать visible=false, так как это быстрее.

DRAGOnoid 24.09.2007 19:38

спасибо =)


Часовой пояс GMT +4, время: 19:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.