![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 44
|
Здравствуйте - позвольте задать следующие вопросы:
1)Вопрос следующий есть обьекты типа МувиеКлип - надо обратиться к ним следующим способом Обьект1 .... ОбьектН - В АС2 было возможно сделать так: for (i=1;i<=StageWallNumber;i++) { if (_root["w"+i]._visible==true) { if (_root.MyBulet.hitTest(_root["w"+i])) { И так далее... Причом когда ему тупо прописываешь он всё понимает - но не может понять что "Обьект"+"02" - это как бы МувиеКлип - а не черт знает что =) --------------------------------------------------- 2) Есть внешний АС файл который прописывает движение пули к примеру что то вроде такого: package { import flash.display.MovieClip; import flash.display.DisplayObject; import flash.display.Graphics; import flash.events.Event; //import flash.events.MouseEvent; public class Bullet extends MovieClip { <font color="SandyBrown"> // public var Player1Life:int; // public var Player1:MovieClip; private var xspeed:int; private var yspeed:int; public function Bullet() { this.x=10; this.y=10; this.addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true); } public function getSpeed(xs:int,ys:int):void { xspeed=xs; yspeed=ys; } private function onLoop(evt:Event):void { this.x += xspeed; this.y += yspeed; //проверка на границы экрана if ((this.x<0) || (this.x>500) || (this.y<0) ||(this.y>500)){ removeEventListener(Event.ENTER_FRAME, onLoop); parent.removeChild(this); } if (this.hitTestObject(Player1)==true){ Player1Life=Player1Life-1; removeEventListener(Event.ENTER_FRAME, onLoop); parent.removeChild(this); trace(Player1Life); } } } } var Player1Life:int=100; b1.addEventListener(MouseEvent.CLICK,b1Click); function b1Click(e:MouseEvent):void{ var bullet:Bullet = new Bullet(); var Bulletx:MovieClip = new Bullet1(); addChild(bullet); bullet.getSpeed(5,5); bullet.addChild(Bulletx); } Как класс я его непрописываю - потому как много глюков - без этого всё работает (если убрать в пакетевыделенные красным коментарии) - но он не понимает что переменные плеер лайф и Pleyer1 - это обьекты из самой флеши - и просто игнорит их и работает только по сценарию который прописан в АС файле. |
|
|||||
|
1)
Если у DisplayObject'а задано имя (то есть в коде прописано mc.name = "abc" + "_1" или на сцене прописан instanceName), то обратиться к нему по имени можно так: 2) Цитата:
ЗЫ То, что у Вас называется getSpeed должно называться setSpeed, ибо этот метод задает скорость, а не возвращает ее
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 44
|
1)С 1 пунктом реально спасибо огромное =))) Я что то даже не сообразил =)) - всё никак после АС 2 не отойду =))) Что то даже не подумал что можно обращаться к объекту как к ребенку
Всё работает просто шикарно ![]() 2) Так способа нету ? Или как нить всё таки ему это можно пропихнуть - чтобы он понял ? ![]() У меня просто с англиским не очень поэтому у меня что гет что сет =))) Я иногда сам код свой читаю пугаюсь =))) Половина такие серьезные название - а половина транслитом - потому что не знал как по англиски ![]() Чтонить типо PolZdania =)) Или там Kover.rotation = ... ![]() Тут вот проблема увы так наверно не решится - потому как надо работать именно как с кадрами так и с внешним ас файлом - иначе запутаюсь =) Потому как объекты и анимировать самому приходится - да и констант очень много и переменных - чтоб реалистично все смотрелось. Хочу любительскую игрушку написать для себя так сказать - типо контры на денди - времени мало - приходится на всем экономить время - потому как до начала работы времени мало осталось - плохо это ![]() Поэтому то собственно такие вопросы и возникают =) Да и если честно как то непривычно очень во внешнем файле скрипты пока писать =) всё таки с флешь 5 начинал - привычка уже ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|