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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Dec 2003
Адрес: Minsk
Сообщений: 34
По умолчанию Private в классах

Возникает такая ситуация - создаеться два объекта одного класса, приизменении Private параметров одного объекта изменяються эти же параметры и второго объекта. Почему? И как сделать что бы эти Объекты были полностью независимы?

Старый 15.11.2004, 16:54
MX500 вне форума Посмотреть профиль Найти все сообщения от MX500
  № 2  
MX500
Banned

Регистрация: Nov 2004
Адрес: Crimea, Kiev
Сообщений: 38
По умолчанию Скажу следующие!

Что значит при изменении private параметров!? У обьектов ты их изменить не можеш так как они тебе не доступны а доступны только внутри класса....


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


Независимы они и так друг от друга просто переменные которые ты хочеш поменять во время проигрывания флашки должны быть по крайней мере public

Старый 15.11.2004, 17:06
Varan_LSD вне форума Посмотреть профиль Отправить личное сообщение для Varan_LSD Найти все сообщения от Varan_LSD
  № 3  
Varan_LSD
 
Аватар для Varan_LSD

Регистрация: Dec 2003
Адрес: Minsk
Сообщений: 34
class Object3D{
private var cor3d = new Array();
private var Parts = new Array();
private var consPath = new String();
private var dist;
function Object3D( xyz, part, nameClip, path, depth){
for (var i = 0; i < xyz.length; i++){
var temp = {
x:xyz[i][0],
y:xyz[i][1],
z:xyz[i][2]
};
this.cor3d[i] = temp;
delete temp;
}
for (var j = 0; j < part.length; j++){
var temp = new Array();
temp["point1"] = part[j][0];
temp["point2"] = part[j][1];
temp["point3"] = part[j][2];
this.Parts[j] = temp;
delete temp;
}
this.dist = 1000;
eval(path).createEmptyMovieClip(nameClip, depth);
this.consPath = String(eval(path)[nameClip]._target);
}
Вот такой код и самое интерестное что this.consPath принимает значение которое передаеться в конструктор каждому объекту, а массивы принимают значения которые передаються в конструктор последнему создаваемому объекту!


Последний раз редактировалось Varan_LSD; 15.11.2004 в 17:15.
Старый 15.11.2004, 17:40
_zhloba вне форума Посмотреть профиль Отправить личное сообщение для _zhloba Посетить домашнюю страницу _zhloba Найти все сообщения от _zhloba
  № 4  
_zhloba

Регистрация: Apr 2004
Адрес: Минск
Сообщений: 176
Проблема не в свойствах класса.

В конструкторе класса ты передаешь один и то же массив всем экземплярам.

Заметь, что все экземпляры Object, в том числе и Array, в любую функцию, в
том числе и конструктор класса, передаются по ссылке, а не по значению.
В результате каждый экземпляр твоего класса ссылается на один и то же массив.

Массивы и др. объекты нужно копировать, если ты хочешь иметь их независимые копии в каждом экземпляре.

Код:
some_array=new Array();
some_object=new Object();

class some_class{
  
  private var _array:Array;
  private var _object:Object;

  function some_class(some_array, some_object){

     var i=0;
     var num=some_array(length);
     _array=new Array();

     for(i=0; i<num; i++){
         _array.push(some_array[i]);
     }
     
     var prop;
     _object=new Object();
     for(prop in some_object){
         _object[prop]=some_object[prop];
     }
  }
}

em1=new some_class(some_array, some_object);
em2=new some_class(some_array, some_object);
Так будет работать - em1 и em2 будут иметь разные значения в своих свойствах.

По значению передаются только Boolean, Number и String, все остальное - по ссылке
__________________
Юра

Старый 15.11.2004, 20:11
Varan_LSD вне форума Посмотреть профиль Отправить личное сообщение для Varan_LSD Найти все сообщения от Varan_LSD
  № 5  
Varan_LSD
 
Аватар для Varan_LSD

Регистрация: Dec 2003
Адрес: Minsk
Сообщений: 34
Большое спасибо. А то столько литературы переколбасил, ничего нигде не написанно.

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

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

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


 


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


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