Показать сообщение отдельно
Старый 05.10.2006, 22:11
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 26  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Надеюсь автор не против критики =)


Замечания

Цитата:
(почему бы ему самому не искать в дефолтных imports?).
При написании скрипта в кадрах, прямо в Flash 9, классы из пакетов flash.* импортированны по умолчанию, НО когда ты кодишь свой класс, не о каком дефолте и речи быть не может, потому что ты можешь иметь свой собственный класс - Sprite, EventDispatcher, Loader.

Цитата:
Если необходимо внутри мувика что-то нарисовать (прямоугольник и т.п.) необходимо подключить класс
Код:
import flash.display.Graphics;
Не слышал о таком, в флексе класс

Код:
package
{
import flash.display.Shape
public class Circle extends Shape
{

public function Circle()
{
super();

graphics.beginFill(0xff6600);
graphics.drawCircle(50,50,50);
graphics.endFill();
}

}

}
Отлично компилируется.

Цитата:
Забываем про
Код:
mc.onPress=function() { 
     бла-бла-бла 
}
Теперь все построено на событиях. Для того чтобы отловить клик мышки по объекту необходимо добавить свою функцию, как реагирующую на событие "click":
Код:
addEventListener("click", mouseDownHandler);
...
function mouseDownHandler(){
}
Ну раньше вообщето все тоже было построенно на событиях =) просто в данной системе используется более близкая реализация Delegating Event Model.

Цитата:
package main {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;

public class myButton extends MovieClip {
public function myButton() {
doubleClickEnabled=true;
addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick);
}
private function onDblClick(evt:MouseEvent):void {
trace("onDblClick");
visible=false;
}
}
} Во-первых, надо подключить классы Event и MouseEvent.
Подключение класса Event в данном случае совершенно не нужно.

Так же насчет констант, в первом примере вы использовали значение "click", во втором константу MouseEvent.DOUBLE_CLICK, в флэше я бы использовал значения, потому что их быстрее набить, в флексе я бы использовал константы, так как из за автокомплита, набить там легче.

Мне кажется вам стоило пояснить, что в первом примере можно было использовать константу, а во втором значение, а то могут возникнуть конфузы у новичков.

Цитата:
С проверкой bytesTotal на ноль функция Update принимает следующий вид:
У классов не бывает функций и переменных, у них есть методы и свойства.
функции могут быть в пакетах, переменные могут быть в методах и функциях (локальные).

Это не просто название, переменная и функция ни к чему не привязанны, в то время как методы и переменные зависят так или иначе от своего класса.

Цитата:
Код:
// Нажатие кнопки мыши по нашему мувику 
function handleMouseDown(event:Event):void { 
     startDrag(); 
} 
// Отпустили кнопку мыши 
function handleMouseUp(event:Event):void { 
     stopDrag(); 
}
Стоит использовать private или protected, они работают быстрее чем internal (который поставится по умолчанию)

Цитата:
Код:
public function ShowInfo(e:Event=undefined) :void {
Не знаю почему компилятор не выдал ошибки, но в флексе за такое компилятор по рукам бъет, Event не может быть undefined он может быть null, скорее всего компилятор Flash 9 автоматически перегоняет undefined в null.

Цитата:
Код:
// Генерит событие "нужно обновить статистику" 
public function doUpdateStatistic() { 
     dispatchEvent(new Event("UPDATE_STATISTIC")); 
}
Насчет создания событий, имена событий пишутся по стандартам переменных, тоесть имя называлось бы updateStatistics, а уже в классе события(я бы расширил Event по такому случаю) пишут
Код:
public static const UPDATE_STATISTICS:String = "updateStatistics";

Теперь о хорошем

Статья сильно понравилась, идет дотошное объяснение что где и когда, я как человек никогда в жизни не делавший подобын игр (делал логические), узнал много нового. Правда есть опасение, что после выхода Flash 9 статью придется переделывать, насколько я понимаю его перепаивают по полной программе.

Но всеже мне кажется что новенькому читать эту статью опасно, из-за некоторых замечаний которые я указал выше.

Насчет стилизации кода, она нифига не соответствует конвенциям АС, но при этом у нее есть своя, правда я не понял какая

Вобщем гратс!
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^