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

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

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

Регистрация: Aug 2010
Сообщений: 44
По умолчанию 2 вопроса: Соответствие при обращение к объектам АС2 и АС3 / Синхронизация переменных

Здравствуйте - позвольте задать следующие вопросы:

1)Вопрос следующий есть обьекты типа МувиеКлип - надо обратиться к ним следующим способом Обьект1 .... ОбьектН - В АС2 было возможно сделать так:
Код AS1/AS2:
 for (i=1;i<=StageWallNumber;i++) {
	if (_root["w"+i]._visible==true) {
      if (_root.MyBulet.hitTest(_root["w"+i])) {
 
И так далее...
В АС3 - он хоть убей отказывается обращаться к обьекту к примеру Обьект02 - как "Обьект"+"02" - что бы я не делал - вопрос есть ли какой то способ обращаться к обьекту - разложив его имя на компоненты типа "Обьект" + Переменная ?

Причом когда ему тупо прописываешь он всё понимает - но не может понять что "Обьект"+"02" - это как бы МувиеКлип - а не черт знает что =)

---------------------------------------------------

2) Есть внешний АС файл который прописывает движение пули к примеру что то вроде такого:

Код AS3:
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);
 
			}	
		}		
	}
}
Вот то что помечено красным он понимает если ему втупую их прописываешь в АС файле - но хоть убей не видит их из вне - когда они к примеру определены в самой фла файле программы Флеш ЦС4 - как сделать чтоб этот барсук понял это ? В самом фла файле я импортирую АС файл так

var Player1Life:int=100;

Код AS3:
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 - это обьекты из самой флеши - и просто игнорит их и работает только по сценарию который прописан в АС файле.

Старый 19.08.2010, 18:18
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
1)
Если у DisplayObject'а задано имя (то есть в коде прописано mc.name = "abc" + "_1" или на сцене прописан instanceName), то обратиться к нему по имени можно так:
Код AS3:
var mc:MovieClip = this.getChildByName("abc" + "_1") as MovieClip;
2)
Цитата:
когда они к примеру определены в самой фла файле
Просто не пишите ничего на кадрах и тогда Вы не будете знать таких проблем

ЗЫ
То, что у Вас называется getSpeed должно называться setSpeed, ибо этот метод задает скорость, а не возвращает ее
__________________
...вселенская грусть

Старый 19.08.2010, 22:41
OwnerOfSuccuby вне форума Посмотреть профиль Отправить личное сообщение для OwnerOfSuccuby Найти все сообщения от OwnerOfSuccuby
  № 3  
Ответить с цитированием
OwnerOfSuccuby

Регистрация: Aug 2010
Сообщений: 44
1)С 1 пунктом реально спасибо огромное =))) Я что то даже не сообразил =)) - всё никак после АС 2 не отойду =))) Что то даже не подумал что можно обращаться к объекту как к ребенку Всё работает просто шикарно

2) Так способа нету ? Или как нить всё таки ему это можно пропихнуть - чтобы он понял ?

У меня просто с англиским не очень поэтому у меня что гет что сет =))) Я иногда сам код свой читаю пугаюсь =))) Половина такие серьезные название - а половина транслитом - потому что не знал как по англиски
Чтонить типо PolZdania =)) Или там Kover.rotation = ...

Тут вот проблема увы так наверно не решится - потому как надо работать именно как с кадрами так и с внешним ас файлом - иначе запутаюсь =) Потому как объекты и анимировать самому приходится - да и констант очень много и переменных - чтоб реалистично все смотрелось.

Хочу любительскую игрушку написать для себя так сказать - типо контры на денди - времени мало - приходится на всем экономить время - потому как до начала работы времени мало осталось - плохо это

Поэтому то собственно такие вопросы и возникают =)

Да и если честно как то непривычно очень во внешнем файле скрипты пока писать =) всё таки с флешь 5 начинал - привычка уже

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

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

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


 


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


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