Четверг, 25 Апреля 2024, 11:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Adobe Flash и Создание флэш-игр » Придача данных as 3 (ActionScript 3)
Придача данных as 3
RollcageДата: Пятница, 21 Октября 2011, 19:05 | Сообщение # 1
участник
Сейчас нет на сайте
Помогите, пожалуйста, в решение вопроса. Мне нужно передать координаты MovieClip из одного класса в другой. Так что бы другой MovieClip мог использовать его координаты. Подскажите, пожалуйста, как это можно реализовать.
noTformaTДата: Пятница, 21 Октября 2011, 19:27 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
мммм, а в чем проблема, если тебе известен клип, то тебе известны и его координаты х и у?

@noTformaT
RollcageДата: Пятница, 21 Октября 2011, 19:41 | Сообщение # 3
участник
Сейчас нет на сайте
Нужен пример, как это реализовать. То как делаю это я, и у меня не получается, выложу позже. Так как сейчас за другим компом.
RollcageДата: Пятница, 21 Октября 2011, 21:31 | Сообщение # 4
участник
Сейчас нет на сайте
Вот как делаю я:
Есть два класса Bot и Nacel они оба принадлежат MovieClip. Мне нужно сделать так что бы координаты x и y мувика Nacel стали такими же как у Bot.
Я пытался уже многими способами, но нечего не выходит.
В классе Nacel я прописал функцию
Code

public function peredachaXY(peremenayaX: Number, peremenayaY: Number): Number {
     
    x = peremenayaX;
    y = peremenayaY;
    return x, y;
}


В Bot не пойму как вызвать данную функцию так что бы засылать в неё координаты Бота.

Ещё один вариант.
В нацел создаю
Code
public var MestoRaspoloj= new Bot;



public function init():void {
    mesto=MestoRaspoloj.NacelX;
     
    }


   
public function init2() {
     
    x = mesto;
    y = 50;
    trace (MestoRaspoloj.NacelX + " mestoX")
      

   }

… в Бот

Code
public var NacelX:Number= x;


Восстанавливал код по памяти так что мог где то ошибиться но выглядит примерно так.

Подскажите какой ни будь другой способ более правильный.
Так как эти какие то не жизнеспособные.
noTformaTДата: Пятница, 21 Октября 2011, 21:36 | Сообщение # 5
Ukrainian independent game developer
Сейчас нет на сайте
если у тебя есть переменная например bot класса Bot
var bot:Bot = new Bot();
и переменая nacel, класса Nacel.
var nacel:Nacel = new Nacel();
то что тебе мешает сделать так??:
bot.x = nacel.x;
bot.y = nacel.y;


@noTformaT
RollcageДата: Пятница, 21 Октября 2011, 23:11 | Сообщение # 6
участник
Сейчас нет на сайте
Спасибо за ответ, но наверное я что то делаю всё же не так как бы я не пробовал выдаёт ошибку 1120 “Обращение не существующего свойства nacel” “Обращение не существующего свойства bot”.
Код:
В классе Bot:
Code
...
public var bot:Bot= new Bot();
...

В класе Nacel:
Code
...
public var nacel:Nacel= new Nacel();
   nacel.x = bot.x;
...
ZizilkДата: Пятница, 21 Октября 2011, 23:14 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Если используешь Adobe Flash pro, и оба мувиклипа уже на сцене и у них есть имена(у самих истансов). то public var bot:Bot= new Bot(); и public var nacel:Nacel= new Nacel(); опускаешь.

Если нет, на сцене и хочешь создать их динамически, то сначала надо отэкспортить мувиклипы в АС3. Но тут как я понял это не надо
RollcageДата: Суббота, 22 Октября 2011, 10:49 | Сообщение # 8
участник
Сейчас нет на сайте
Подскажите, пожалуйста, а то я не пойму, почему оно не работает и выдаёт эти ошибки. Вот полный код:
Класс Bot
Code
package {
  import flash.display.Sprite;
  import flash.events.Event;
  public class Bot extends Sprite {
    
    
   ublic var nacel:Nacel= new Nacel();
    
   public function Bot() {
     
     
   }
}

}


Класс Nacel
Code
package {
  import flash.display.Sprite;
  import flash.events.Event;
  public class Nacel extends Sprite {
     
   public var bot:Bot= new Bot();
    
   nacel.x = bot.x;
    
   public function Nacel() {
     
     
   }
    
    
    
    
    
    
   }
   
   
   
  }
ezhekaДата: Суббота, 22 Октября 2011, 11:16 | Сообщение # 9
почетный гость
Сейчас нет на сайте
bot и nacel на сцене? Им должны быть прописаны имена в свойствах. Потом добавляешь код

Code

package {     
      import flash.display.Sprite;     
      import flash.events.Event;     
      public class main  extends MovieClip     
      {     

       public function main() {     
             nacel.x = bot.x;   
             
       }     
       }     
      }


текущее

Сообщение отредактировал ezheka - Суббота, 22 Октября 2011, 11:49
RollcageДата: Суббота, 22 Октября 2011, 11:34 | Сообщение # 10
участник
Сейчас нет на сайте
Нет не на сцене, но они выводятся при помощи addChild в другом классе.
А может кто-то выложит наглядный пример, исходник?
КластерДата: Суббота, 22 Октября 2011, 12:30 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Я бы выложил. Но я не как не пойму, что хочет ТС.
noTformaT, и так уже сказал, что передать переменные легчё лекого путём * mvclip1.x = mvclip2.x * , тоже самое с width и height .

Просто ТС без обид, но я не пойму что ты хочешь smile

Вообщем тебе нужен основной класс, в котором будут созданы 2 дополнительных класса Бот и Насел, и далее в нём уже управлять ими. При этому у тебя будет 2 пакета Бот - Насел , и основной пакет для вывода информации на экран и управлениями теми 2-я классами

Code

package      
{
      import flash.display.Sprite;
      import flash.events.Event;
      import адрес Nacel;
      import адрес Bot;
           
           
      public class Main extends Sprite      
      {
                 public var nacel:Nacel= new Nacel();      
                 public var bot:Bot= new Bot();
            
       public function Main():void      
       {
        if (stage) init();
       }
            
       private function init(e:Event = null):void      
       {
         
                         bot.x = nacel.x;
                         bot.y = nacel.y;
       }
            
      }
           
}


Ещё все 3 файла AS кода,должны находится в одной папке ! Если используете разные папки, то надо в import прописать адрес нахождения класса Bot и Nacel

И ошибку, то что не может найти тот, или иной класс, связана с тем, что ты не прописал в import адрес каждого класса. В принципе можно создать оба класса внутри 2-х этих. Но главное прописать путь, к одному и к другому.


Сообщение отредактировал Кластер - Суббота, 22 Октября 2011, 13:33
ек0нДата: Суббота, 22 Октября 2011, 13:42 | Сообщение # 12
участник
Сейчас нет на сайте
Как я понял, ТС нужно что-то вроде реестра: http://www.photonstorm.com/archive....ructure
(Возможно, придется ввести капчу, чтоб пройти по ссылке)

Если коротко, то создаешь класс, допустим, Registry, в нем создаешь статические переменные bot:Bot и nacel:Nacel.
В основном классе, при создании этих объектов, присваиваешь переменным класса Registry только что созданные копии объектов (bot = new Bot(); Registry.bot = bot;) и теперь можешь из любого класса обращаться к боту через Registry.bot
RollcageДата: Воскресенье, 23 Октября 2011, 11:50 | Сообщение # 13
участник
Сейчас нет на сайте
Quote (Кластер)
import адрес Nacel;
import адрес Bot;

А как прописать адрес если Клас у меня, например находится J:/Proect/Proverka
А сам флеш в C:/ProgramFile/…
Подскажите пожалуйста.
noTformaTДата: Воскресенье, 23 Октября 2011, 12:43 | Сообщение # 14
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Rollcage)
А как прописать адрес если Клас у меня, например находится J:/Proect/Proverka
А сам флеш в C:/ProgramFile/…
Подскажите пожалуйста.

ты в чем пишешь именно?


@noTformaT
RollcageДата: Воскресенье, 23 Октября 2011, 23:48 | Сообщение # 15
участник
Сейчас нет на сайте
Quote (noTformaT)
ты в чем пишешь именно?

adobe flash professional cs 5.5
я имею в виду как этот адрес будет выглядеть...
noTformaTДата: Воскресенье, 23 Октября 2011, 23:52 | Сообщение # 16
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Rollcage)
я имею в виду как этот адрес будет выглядеть...

ну если этот ас3 класс находится в той же папке что и фла файл, то просто import имя_клаcса;
в основном все классы находиться в дочерних или в самой папке с фла файлом.
Например есть папка src, в ней fla файл game.fla, и папка my_classes, а в папке my_classes находиться класс myclass.as, тогда импорт этого класса будет такой:
import my_classes.myclass;


@noTformaT
RollcageДата: Понедельник, 24 Октября 2011, 17:52 | Сообщение # 17
участник
Сейчас нет на сайте
Вот исходник http://zalil.ru/31925104 я хочу передать координату x и y от Bot к Nacel
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Adobe Flash и Создание флэш-игр » Придача данных as 3 (ActionScript 3)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг