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

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

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

Регистрация: Oct 2009
Сообщений: 92
По умолчанию повторение функции не с исходного значения

знаний флэша хватило на написание больше половины работы, с остальным помогли разобраться на форуме.

но есть еще вопрос

как доработать код чтобы после завершения функции public function cfline(e:TimerEvent) { ... } ее повторение начиналось не с исходного числа public var balanceXMLS:String="85390"; а продолжало дальше прибавлять +1

Код:
package {
	import flash.display.*;
	import flash.events.*;
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;
	import flash.utils.Timer;
	import flash.events.TimerEvent;

public class counter extends MovieClip {
	public var i:int;
	public var str=String;

	public var balanceXMLS:String="85390";

	public function Init()
	{
		var timer:Timer = new Timer (5000);
		timer.addEventListener(TimerEvent.TIMER, cfline);
		timer.start();
	}

    public function cfline(e:TimerEvent)
	{
		str=String(Number(balanceXMLS)+1);
		trace(str);

		for (i = 0; i < 5; i++)
		{
			var ww = str.charAt(i);
			if(i == 0)
				{var my1Tween:Tween = new Tween(count.cfline_tw1,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);}
			else if(i == 1)
				{var my2Tween:Tween = new Tween(count.cfline_tw2,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);}
			else if(i == 2)
				{var my3Tween:Tween = new Tween(count.cfline_tw3,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);}
			else if(i == 3)
				{var my4Tween:Tween = new Tween(count.cfline_tw4,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);}
			else if(i == 4)
				{var my5Tween:Tween = new Tween(count.cfline_tw5,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);}
		}
    }
}}

Старый 02.12.2009, 15:37
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 2  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
1) Зачем вам i в членах класса? Она используется только в cfline, вот туда её и перенесите.
2) Зачем вы числа храните в виде строк? Почему бы их не хранить в виде чисел?)

Код AS3:
public class counter extends MovieClip {
 
	public var str:String;
	public var balanceXMLN:String=85390;
 
	public function Init()
	{
		var timer:Timer = new Timer (5000);
		timer.addEventListener(TimerEvent.TIMER, cfline);
		timer.start();
	}
 
	public function cfline(e:TimerEvent)
	{
		balanceXMLN++;
		str=String(balanceXMLN);
		trace("Balance now: " + str);
 
		for (var i:int = 0; i < 5; i++)
		{
			var ww:String = str.charAt(i);
			if(i == 0) var my1Tween:Tween = new Tween(count.cfline_tw1,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);
			else if(i == 1) var my2Tween:Tween = new Tween(count.cfline_tw2,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);
			else if(i == 2) var my3Tween:Tween = new Tween(count.cfline_tw3,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);
			else if(i == 3) var my4Tween:Tween = new Tween(count.cfline_tw4,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);
			else var my5Tween:Tween = new Tween(count.cfline_tw5,"y", None.easeNone, 10, -40*(9-1-ww)-800, 0.9, true);
		}
    }
}
И да, называть переменную str – к беде Через месяц вы не сможете вспомнить, что же за строка такая в ней хранилась.


Последний раз редактировалось SamFR; 02.12.2009 в 16:11.
Старый 02.12.2009, 15:44
lissa81 вне форума Посмотреть профиль Отправить личное сообщение для lissa81 Найти все сообщения от lissa81
  № 3  
Ответить с цитированием
lissa81

Регистрация: Oct 2009
Сообщений: 92
спасибо за советы я их учту в последующих работах.

но сейчас выдается ошибки
1184: Несовместимое значение по умолчанию типа int; ожидается String.
1067: Неявное приведение значения типа String к несоответствующему типу Number.

я не знаю что это и как это исправлять ((
может вас не затруднит объяснить что это и как исправить

Старый 02.12.2009, 15:49
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 4  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Ещё я не смог понять логику работы метода cfline. Наверное, что-то очень хитрое... Действительно: мы берём какое-то число и увеличиваем его на 1. Далее превращаем его в строку. Далее в цикле (!) создаём черыре локальных переменных и назначаем им твины, причём один из числовых параметров вычисляем как сложное авифметическое выражение, включающее в себя вычитание строки из числа. Далее этими переменными не пользуемся, так что они исчезнут после окончания работы метода.

Если не обращать внимание не вычитание строки (хотя на такое сложно не обращать внимания =), то метод можно абсолютно безболезненно переписать так:

Код AS3:
public function cfline(e:TimerEvent)
	{
		balanceXMLN++;
		str=String(balanceXMLN);
		trace("Balance now: " + str);
 
		var my1Tween:Tween = new Tween(count.cfline_tw1,"y", None.easeNone, 10, -40*(9-1-str.charAt(0))-800, 0.9, true);
		var my2Tween:Tween = new Tween(count.cfline_tw2,"y", None.easeNone, 10, -40*(9-1-str.charAt(1))-800, 0.9, true);
		var my3Tween:Tween = new Tween(count.cfline_tw3,"y", None.easeNone, 10, -40*(9-1-str.charAt(2))-800, 0.9, true);
		var my4Tween:Tween = new Tween(count.cfline_tw4,"y", None.easeNone, 10, -40*(9-1-str.charAt(3))-800, 0.9, true);
		var my5Tween:Tween = new Tween(count.cfline_tw5,"y", None.easeNone, 10, -40*(9-1-str.charAt(4))-800, 0.9, true);
	}
Только учтите, что, как только метод cfline() отработает, все эти переменные myNTween станут недоступны.

Добавлено через 2 минуты
Цитата:
Сообщение от lissa81 Посмотреть сообщение
но сейчас выдается ошибки
1184: Несовместимое значение по умолчанию типа int; ожидается String.
1067: Неявное приведение значения типа String к несоответствующему типу Number.

я не знаю что это и как это исправлять ((
может вас не затруднит объяснить что это и как исправить
Это как раз-таки по той причине, что вы вычитаете строку из числа. Как вы дкмаете, чему будет равно 10 – "пампарам"? Вот и флеш не знает


Последний раз редактировалось SamFR; 02.12.2009 в 16:11.
Старый 02.12.2009, 15:58
lissa81 вне форума Посмотреть профиль Отправить личное сообщение для lissa81 Найти все сообщения от lissa81
  № 5  
Ответить с цитированием
lissa81

Регистрация: Oct 2009
Сообщений: 92
По умолчанию м

идея была в том что при получение числа начинают прокручиваться цифры и при каждом новом прокручивание они увеличиваются на 1

но я не смогла это реализовать другим способом кроме того что вы видите
Вложения
Тип файла: zip Счетчик.zip (19.0 Кб, 33 просмотров)


Последний раз редактировалось lissa81; 02.12.2009 в 16:09.
Старый 02.12.2009, 16:20
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 6  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
"Прокручивание цифр", если я правильно понял, осуществляется тут:
Код AS3:
balanceXMLN++;
А зачем вы потом превращаете это число в строку и вычитаете отдельные её символы из какого-то числа?

Старый 02.12.2009, 16:24
lissa81 вне форума Посмотреть профиль Отправить личное сообщение для lissa81 Найти все сообщения от lissa81
  № 7  
Ответить с цитированием
lissa81

Регистрация: Oct 2009
Сообщений: 92
изначально было что число приходило с сервера. потом это убралось и осталось просто одно число к которому нужно при каждой прокрутки +1.

и в итоге я настолько запуталась что совсем не понимаю что нужно делать чтоб исправить этот код. (((((

Добавлено через 2 минуты
нет это balanceXMLN как раз число

Добавлено через 10 минут
SamFR: не хочет у меня работать ( выдает ошибки

Старый 03.12.2009, 01:21
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 8  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Для того, чтобы попытаться вам помочь, нужно увидеть весь код. А также чётко знать, что он должен делать, и как пытаетесь это сделать вы. Потому что, видимо, делаете вы что-то в корне неправильно (по крайней мере, судя по тому коду, что был приведён выше).

Старый 03.12.2009, 11:21
lissa81 вне форума Посмотреть профиль Отправить личное сообщение для lissa81 Найти все сообщения от lissa81
  № 9  
Ответить с цитированием
lissa81

Регистрация: Oct 2009
Сообщений: 92
спасибо за помощь. с вашей подсказки нашла в чем ошибка и все исправила. теперь все работает.

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

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

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


 


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


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