|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
|
код не читабелен...читайте про конвенции оформления кода.
http://opensource.adobe.com/wiki/dis...ng+Conventions |
|
|||||
Регистрация: Dec 2009
Сообщений: 2
|
sky.as
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(); } } } moving_object.as 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; } } } Так будет правильно? Последний раз редактировалось DVHERO; 17.12.2009 в 15:04. Причина: неправильно оформил текст |
|
|||||
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Судя по коду все верно, но раз не работает, то последовательно ищите ошибку. Добавляйте trace в коде, чтобы убедиться, что все нужные функции вызываются и параметры верные.
Добавьте в sky.as public function Update(e : Event):void { trace("new_asteroid=", new_asteroid); // убедиться, что new_asteroid проинициализирован new_asteroid.move(); } |
|
|||||
Регистрация: Nov 2009
Сообщений: 7
|
ненавжу adobe ппц неужели неьзя сделать норм скачку? все какую то парашу с меня требует. я зарегался .а дальше черт с кастылем махает урод
а так спасибо за статью
__________________
[img]http://i054.***********/0912/a4/b2321b575ff9.gif[/img] |
|
|||||
Регистрация: Dec 2009
Сообщений: 14
|
классно) спасибо, обязательно прочту) а ты по ас1 и 2 ничего не писал?)
|
|
|||||
Регистрация: Nov 2009
Сообщений: 5
|
Цитата:
застрял на классе background сначала ругалось на parent.startDrag() и parent.stopDrag() - Call to a possibly undefined method startDrag through a reference with static type flash.displayisplayObjectContainer как учили старшие товарищи обыграл так: (parent as MovieClip).startDrag(... но дальше - хуже, еще ругается на строки if (root.panel.dragged_mc) и root.panel.handleMouseUp(); - Access of possibly undefined property panel through a reference with static type flash.displayisplayObject есть стойкое ощущение, что содержимое fla-файла не вполне соответствует его описанию че делать то? |
|
|||||
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
> ругается "Access of possibly undefined property"
правильно ругается. Свойство parent имеет тип DisplayObject у которого нет методов типа startDrag или свойств dragged_mc и т.п. С точки зрения компилятора такой код неверен. Можно это обходить приведением типов (как вы правильно писали parent as MovieClip), а можно попросить компилятор закрыть глаза на эту вопиющую безграмотность (Publish Settings -> Action script .. Settings -> снять галочку Strict Mode), и все скомпилируется и заработает и даже без ошибок, поскольку в качестве parent там MovieClip, у которого есть все требуемые методы и свойства. > Версия 2.0 увидела свет? нет. С точки зрения грамотного ООП программирования на AS3, эта статья полная лажа. Яркий пример того, как не надо писать на AS3 Ее не стоит рекомендовать желающим изучить AS3... но она может быть полезна тем, кто переходит с AS1,2 на AS3, поскольку после AS1,2 еще остается процедурное мышление и навязчивое желание вызывать не свои методы напрямую, типа parent.startDrag |
|
|||||
Регистрация: Nov 2009
Сообщений: 5
|
а что (кроме Мука) можно почитать, чтобы грамотно писать на AS3?
|
|
|||||
Регистрация: Jan 2010
Сообщений: 44
|
огромное спасибо
|
|
|||||
Регистрация: Mar 2010
Сообщений: 223
|
Решил делать сам по тексту, не смотря в исходники(зато ошибки компиляции отлавливаю, все делаю в строгом режиме). Мозг уже сломал наверно.
У меня непонимание места с секторами, и проверкой на столкновение. А именно и . Представляю так: all_sectors[1][name 1] all_sectors[1][name 2] all_sectors[1][name 3] если проверять на существование all_sectors[1], то даст true. Если удалить все all_sectors[1][name 1] all_sectors[1][name 2] all_sectors[1][name 3] то при проверка на существование all_sectors[1], даст false. Короче делается, что бы не совершать проверку на столкновение с самим собой(скажем так)? Последний раз редактировалось cpu; 14.03.2010 в 17:41. |
Часовой пояс GMT +4, время: 10:28. |
|
« Предыдущая тема | Следующая тема » |
|
|