inspace
20.09.2007, 15:53
Есть класс all_situation, который принимает в конструктор массив и парсит его, присваивая соответствующим параметрам массивам соответствующие значения.
Этот класс имеет паблик функцию
public function get_homeschool_array():Array {
return _homeschool_array;
}
в другом классе я вызываю у объекта типа all_situation метод get_homeschool_array();
и применяю метод рандомной сортировки
private function random_scence_question() {
var arr = _all_situation.get_homeschool_array();
var rand = Math.floor(arr.length*Math.random());
_means_of_travel = arr[rand].nodeName;
_curent_scene_situation = arr[rand].childNodes;
shuffle_array();
}
public function shuffle_array() {
var z = new Number();
for(var i = 0; i < _curent_scene_situation.length; i++) {
var t = Number(Math.floor((_curent_scene_situation.length - i) * Math.random()));
z = t + i;
var _iteration_element = _curent_scene_situation[i];
var _random_element = _curent_scene_situation[z];
_curent_scene_situation[z] = _iteration_element;
_curent_scene_situation[i] = _random_element;
}
trace(_curent_scene_situation);
}
при этом, как видно, нижний трейс должен показывать рандомный массив. но тем не менее отображается та последовательность , которая описана в xml. когда я ставлю
_curent_scene_situation[z] = null;
_curent_scene_situation[i] = null;
то ровным счетом ничего не меняется - никаких нулей, та же последовательность. почему это происходит. как с этим бороться?
Этот класс имеет паблик функцию
public function get_homeschool_array():Array {
return _homeschool_array;
}
в другом классе я вызываю у объекта типа all_situation метод get_homeschool_array();
и применяю метод рандомной сортировки
private function random_scence_question() {
var arr = _all_situation.get_homeschool_array();
var rand = Math.floor(arr.length*Math.random());
_means_of_travel = arr[rand].nodeName;
_curent_scene_situation = arr[rand].childNodes;
shuffle_array();
}
public function shuffle_array() {
var z = new Number();
for(var i = 0; i < _curent_scene_situation.length; i++) {
var t = Number(Math.floor((_curent_scene_situation.length - i) * Math.random()));
z = t + i;
var _iteration_element = _curent_scene_situation[i];
var _random_element = _curent_scene_situation[z];
_curent_scene_situation[z] = _iteration_element;
_curent_scene_situation[i] = _random_element;
}
trace(_curent_scene_situation);
}
при этом, как видно, нижний трейс должен показывать рандомный массив. но тем не менее отображается та последовательность , которая описана в xml. когда я ставлю
_curent_scene_situation[z] = null;
_curent_scene_situation[i] = null;
то ровным счетом ничего не меняется - никаких нулей, та же последовательность. почему это происходит. как с этим бороться?