Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.08.2009, 13:11
buskaMuza вне форума Посмотреть профиль Отправить личное сообщение для buskaMuza Найти все сообщения от buskaMuza
  № 1  
Ответить с цитированием
buskaMuza

Регистрация: Aug 2009
Сообщений: 1
Цитата:
Маленькое отступление. Мне стало интересно, почему при добавлении числа к строке “строка”+Number, его не нужно преобразовывать в строку toString() ? Написал маленькую проверку:

Код AS3:
var s:String="1";
var num:Number=4;
s+=num;
num+=s;
trace("s="+s+", num="+num); // s=14, num=414
Ни каких ошибок компилятор не выдал. Это что же получается, все как раньше? Переменная num по пути из Number стала String и в результате получили “414” вместо ожидаемых “18” или хотя бы ошибки компиляции?! Нафига тогда вообще типы переменных нужны? Что-то я не понял
Это нормально как раз Пусть есть 2 переменные разных типов: число и строка. Вы производите с ними какое-то совместное действие. При этом есть 3 варианта:
- выдать ошибку, что типы не соответствуют;
- преобразовать строку в число и выполнить действие как с числами;
- преобразовать число в строку и выполнить с ними операцию как со строками.

Почему Вы считаете, что третий вариант хуже второго? Если уж так следить за типами, то выбирать третий вариант. Но в подобной ситуации, думаю, достаточно выбрасть стандартный способ - третий.

А вообще - спасибо за детальное описание создания игры. Сейчас как-то задумала поизучать флеш (а вдруг игру какую-то захочется сделать ) и почитать будет полезно. И так поняла, что хорошо, что сейчас начала изучать - когда уже появился AS3 и не надо задумываться о том, как было раньше.

Пока что пробую сделать карточную игру типа "Башенки" Застоорилась на событии клацанья по карте - не знаю пока что как это делается по-человечески.... чтоб нигде потом ничего не потерялось и все правильно работало.
Но пока что флеш вместе с AS почти полностью меня захватил и увлек!

Старый 01.09.2009, 12:19
veisss вне форума Посмотреть профиль Отправить личное сообщение для veisss Найти все сообщения от veisss
  № 2  
Ответить с цитированием
veisss

Регистрация: Jun 2009
Сообщений: 93
действительно классная статья. сам с нее начал AS3 учить, вот во что у меня превратилась сие творение Robocity

Старый 30.09.2009, 23:53
VladiT вне форума Посмотреть профиль Отправить личное сообщение для VladiT Найти все сообщения от VladiT
  № 3  
Ответить с цитированием
VladiT

Регистрация: Sep 2009
Сообщений: 1
Автор, ты реально крут у знакомого взял этот пример, начал ковыряться и вот только сейчас нашел этот форум. До этого никогда не работал с флешем, а тут решил попробывать, делал все на AFlash CS4, 10-й Player. После биллион ошибок, вроде все стало работать(хотя есть кое какие глюки дошел до посл. стр). Вот только мне почемуто показалось, что игру я делал быстрее чем учил флеш, хотя вникал и переписывал все в ручную, вплоть до комментариев. Сейчас вот проблемы с этой моделью дисплей-объектов AS3.0 ни как вникнуть немогу, что где куда... не вижу общей картины связаности, также так как там не указан Document class, без понятия как порядок загрузки мувиков... чувствую сейчас отправят в гугл

Насчет примера, так как код старый, незнаю реально ли на нем нормально научиться... повторюсь до этого с флешем не связывался, начил ровно с AFlash CS4 и AS3.0.


Последний раз редактировалось VladiT; 30.09.2009 в 23:55.
Старый 09.11.2009, 23:15
Anate вне форума Посмотреть профиль Отправить личное сообщение для Anate Найти все сообщения от Anate
  № 4  
Ответить с цитированием
Anate

Регистрация: Nov 2009
Сообщений: 1
Я тоже вначале застрял. Практически ничего не понимаю. Есть уроки по ActionScript 3.0 для совсем чайников?

Старый 17.12.2009, 14:37
DVHERO вне форума Посмотреть профиль Отправить личное сообщение для DVHERO Найти все сообщения от DVHERO
  № 5  
Ответить с цитированием
DVHERO

Регистрация: Dec 2009
Сообщений: 2
Здравствуйте. Вот повезло найти этот форум. Начать разбиратся в этой игре что и как по туториалу. Все шло хорошо, но сейчас возникла проблема с астероидами, они не двигаются..., делал все как написано в туторе, просматривал исходник, вроде все также, но мой пример почему то не работает,подозреваю что косяки в moving_object и sky,больше негде)
vector тоже использую из туториала

moving_object.as
Код AS3:
package main {
     import flash.display.MovieClip;
     import main.*;
 
     dynamic public class moving_object extends basic_object {     
	 const DROP_RADIUS:Number = 200;     // разброс при вбрасывании
     const MIN_SPEED:Number = 1;  // раброс начальной скорости
     const MAX_SPEED:Number = 10; 
           public var Velocity:Vector; // вектор движения
 
           public function moving_object() {
                var num:Number;
                num = Math.floor(Math.random()*totalFrames)+1; // выбираем случайный кадр
                gotoAndStop(num); // и переходим на него
                Velocity = new Vector(); // создаем вектор
                // вычислим наш радиус, основываясь на размере картинки
                radius = Math.floor((width+height)/4);     
           }
	      // Вбросить объект рядом с указанной точкой x1:y1 и двигаться к x2:y2
		  public function drop(x1:Number,y1:Number, x2:Number,y2:Number):void {
          // координата вброса
          x = x1 + (Math.random()-0.5)*DROP_RADIUS;
          y = y1 + (Math.random()-0.5)*DROP_RADIUS;
          // направление
          Velocity.setMembers(x2-x, y2-y);
          // скорость
          var spd:Number = MIN_SPEED + (MAX_SPEED-MIN_SPEED)*Math.random();
          // приведем длину вектора к выбранной скорости
          Velocity.mulScalar( spd / Velocity.magnitude() );
          } 
		    // Переместиться
		   public function move():void {
     		x += Velocity.x;
    	    y += Velocity.y;
            } 
     }
}
sky.as
Код AS3:
package main {
     import flash.display.MovieClip;
     import flash.events.*; 
     import main.*;
 
     dynamic public class sky extends MovieClip {
                var new_asteroid:moving_object;
           public function sky() {
                addEventListener(Event.ENTER_FRAME, Update); 
				dropAsteroid();
                }
		     public function dropAsteroid():void{
                new_asteroid = new moving_object();
                addChild(new_asteroid);
                new_asteroid.drop(200,300, 500,500);
			 }
 
			 public function Update(e : Event):void {
                // Проходим по всему массиву созданных объектов
                // и заставляем каждого сдвинуться в своем направлении
                     new_asteroid.move();                
           }
     }
}
что я делаю не так

Старый 22.12.2009, 13:14
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 6  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Судя по коду все верно, но раз не работает, то последовательно ищите ошибку. Добавляйте trace в коде, чтобы убедиться, что все нужные функции вызываются и параметры верные.
Добавьте в sky.as
Код AS3:
      public function Update(e : Event):void 
      {
trace("new_asteroid=", new_asteroid); // убедиться, что new_asteroid проинициализирован
         new_asteroid.move();                
      }
в moving_object.as
Код AS3:
	public function move():void
        {
     		 x += Velocity.x;
    	         y += Velocity.y;
trace(this, "x:y=", x, y, "Velocity=", Velocity); // убедиться, что функция вызывается и координаты меняются
        }
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 04.10.2009, 03:04
petrikov вне форума Посмотреть профиль Отправить личное сообщение для petrikov Найти все сообщения от petrikov
  № 7  
Ответить с цитированием
petrikov

Регистрация: Oct 2009
Сообщений: 1
Я тоже начал с cs4, порыскав в интернете на предмет обучающих материалов, наткнулся на сей пример. Сперва на несущественные вещи (на мой взгляд) забивал, но потом пришел к выводу, что я в принципе не понимаю, что делаю)). В итоге начал заново и все по порядку.
Ближе к делу.
Код AS3:
// Нажатие кнопки мыши по нашему мувику
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);
	startDrag(false, dragRect);
}
при клике мышкой на фоне фон улетает в сторону. Внимание - вопрос. Как осуществляется расчет координат на сцене? мувик с фоном нужно помещать центром в левый верхний угол scene? Ответы на самые тупые вопросы искать тяжелее всего...

Старый 18.10.2009, 14:07
TonKhaO вне форума Посмотреть профиль Отправить личное сообщение для TonKhaO Найти все сообщения от TonKhaO
  № 8  
Ответить с цитированием
TonKhaO

Регистрация: Apr 2009
Сообщений: 87
прям вопрос по первому пункту, хеллооу ворлд почему не получаетися посмотрите скриншот, все сделал как там написано и нифига в аутпуте нету
[откоцано за разнос страницы форума]


Последний раз редактировалось etc; 18.10.2009 в 18:45.
Старый 25.11.2009, 19:13
mykolka вне форума Посмотреть профиль Отправить личное сообщение для mykolka Найти все сообщения от mykolka
  № 9  
Ответить с цитированием
mykolka

Регистрация: Nov 2009
Сообщений: 1
очень понравился урок (да и сама игра). сижу вот разбираюсь. автору большое спасибо!

пока не смог отловить утечку памяти: через несколько минут игры начинаются жуткие тормоза (загрузка процессора под 100%). юзаю флеш цс4. деструкторы вроде везде стоят. мож сборщик мусора в флеше плохо работает?

Старый 02.12.2009, 00:27
mysBer вне форума Посмотреть профиль Отправить личное сообщение для mysBer Найти все сообщения от mysBer
  № 10  
Ответить с цитированием
mysBer

Регистрация: Aug 2009
Адрес: Московская область
Сообщений: 13
Подскажите пожалуйста, в чём ошибка:

TypeError: Error #1007: Попытка реализации в объекте, который не является конструктором.
at src::moving_object()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at src::sky()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at game_fla::MainTimeline()
TypeError: Error #1007: Попытка реализации в объекте, который не является конструктором.
at src::moving_object()
at src::sky()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at game_fla::MainTimeline()

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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