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

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

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

Регистрация: Jul 2005
Сообщений: 38
По умолчанию Сумма массива

Посоветуйте пожалуйста, что не так
Код:
var counts = new Array(4, 7, 2);
SumArr = function(Iar){
	var sumr,i=0;
	while(i<Iar){
	sumr+=counts[i];
	i++;
	}
	return sumr;
};
m.onRelease = function(){
	sumr=SumArr(2);
	trace(sumr);
}
Трэйсом должно вывести сумму элементов массива, переданных в Iar


Последний раз редактировалось gurman; 10.01.2008 в 12:47.
Старый 10.01.2008, 01:47
Aziz Zaynutdinoff вне форума Посмотреть профиль Отправить личное сообщение для Aziz Zaynutdinoff Посетить домашнюю страницу Aziz Zaynutdinoff Найти все сообщения от Aziz Zaynutdinoff
  № 2  
Ответить с цитированием
Aziz Zaynutdinoff
 
Аватар для Aziz Zaynutdinoff

Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
что это за переменные такие?
у вас result (если ранее не объявлен) равен undefined (NaN), counts тоже чепуха какая-то, о которой ранее не говорится (из того фрагмента кода), затем объявляется переменная sumr равная 0 и она же возвращается (зачем тогда вся эта функция, если по данному куску кода можно было просто написать sumr = 0 и не вызывать никакую функцию) и зачем возвращать значение переменной, над которой никаких действий не производилось?

бред короче

Старый 10.01.2008, 04:09
Mr. Fixit вне форума Посмотреть профиль Найти все сообщения от Mr. Fixit
  № 3  
Ответить с цитированием
Mr. Fixit
Banned

Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
а какой результат вы хотите видеть?
counts не объявлен массив, а элементы в нем не содержатся.
добавляйте любой элемент в массив с помощью таких методов, напр:
Код:
var someArr:Array = new Array();

someArr.push('happy'); // someArr[0]
someArr.push('funny'); // someArr[1]

someArr.unshift('xD'); // someArr[0]
// someArr[1] = 'happy';
// someArr[2] = 'funny';

someArr.splice(1, 0, ':P'); // someArr[1]

trace(someArr); // xD, :P, happy, funny
по идее, так должно быть. Разберитесь

Старый 10.01.2008, 12:36
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Класс MArray
Код:
class MArray extends Array {
	function MArray(){
		if(arguments.length>1 || (isNaN(arguments[0])&&arguments.length==1)){
			for(var i:Number=0;i<arguments.length;i++){
				this.push(arguments[i]);
			}
		} else if(!isNaN(arguments[0])&&arguments.length==1){
			for(var i:Number=0;i<arguments[0];i++){
				this.push(undefined);
			}
		}
	}
	function summ():Number {
		var n:Number = 0;
		var i:Number = 0;
		trace(this);
		trace(this.length);
		while(i<this.length){
			if(!isNaN(this[i])){
				n+=this[i];
			}
			i++;
		}
		return n;
	}
}
Использование:
Код:
var _marr:MArray = new MArray('a',0,.45,90,{a:'s'});
trace(_marr);
trace(_marr.summ());
_marr.push('lalala');
trace(_marr);
Трейс:
Код:
a,0,0.45,90,[object Object]
a,0,0.45,90,[object Object]
5
90.45
a,0,0.45,90,[object Object],lalala
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 10.01.2008 в 16:44.
Старый 10.01.2008, 12:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
wvxvw, оригинальный конструктор класса. Ну то, что написан, мягко говоря, криво, так ещё и цикл в else if получится бесконечный.

Старый 10.01.2008, 16:44
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от __etc
wvxvw, оригинальный конструктор класса. Ну то, что написан, мягко говоря, криво, так ещё и цикл в else if получится бесконечный.
Писал пока кофе перед работой пил %) Восклик не поставил, поправил.

PS:
Код:
class MArray extends Array {
	function MArray(){
		this = Array.apply(null,arguments);
		trace(this);
	}
	function summ():Number {
		var n:Number = 0;
		var i:Number = 0;
		while(i<this.length){
			if(!isNaN(this[i])){
				n+=this[i];
			}
			i++;
		}
		return n;
	}
}
Вот, странная штука, не могу понять. Почему в конструкторе this трейсится нормально, а функциях класса - нет?
__________________
Hell is the possibility of sanity

Старый 10.01.2008, 16:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от wvxvw
Код:
this = Array.apply(null,arguments);
Этот шедевр покруче предыдущего
Хотя бы так (с восьмой версии):
Код:
public function MArray() {
    super();
    super.push.apply(this, arguments);
}

Старый 10.01.2008, 16:58
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от __etc
Этот шедевр покруче предыдущего
Хотя бы так (с восьмой версии):
Код:
public function MArray() {
    super();
    super.push.apply(this, arguments);
}
Это совсем не та операция, которая мне нужна %)) Если класс наследует метод - зачем его еще и с "супером" вызывать?

Кразифлашер - при чем тут паблик/прайвет? Если не объявлено - значит паблик. И это к теме никакого отношения не имеет.

Мне не нужно вызывать пуш или еще какой метод, мне надо, чтобы конструктор Array'я был так же конструктором моего класса, ну или что-нибудь, что делало бы то же самое.
И вопрос в последнем посте - не как сделать по-другому (это я как-нть и сам могу =), а почему this из конструктора и из метода трейсится по-разному.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 10.01.2008 в 17:02.
Старый 10.01.2008, 13:58
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 9  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Код:
var counts = [4, 7, 2];
SumArr = function (Iar) {
	var sumr = 0;
	var i = 0;
	while (i < Iar) {
		sumr += counts[i];
		i++;
	}
	return sumr;
};
sumr = SumArr(2);
trace(sumr);
и вот это
Код:
var sumr, i = 0;// зачем так объявлять переменные?
trace(sumr);


Последний раз редактировалось alexcon314; 10.01.2008 в 14:00.
Старый 10.01.2008, 14:36
gurman вне форума Посмотреть профиль Отправить личное сообщение для gurman Найти все сообщения от gurman
  № 10  
Ответить с цитированием
gurman

Регистрация: Jul 2005
Сообщений: 38
alexcon314 спасибо, с переменными исправлюсь

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

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

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


 


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


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