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

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

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

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
The bomb! Вывод в динам.текст длину массива.

Я делаю урок http://easyflash.org/flashlearn/flas...sya-shary.html
Я захотел его улучшить, сделав видимый при просмотре счётчик количества мячей.
Я пытался сделать так:
Код AS3:
myText.text=myNameArray.length
Но выдавало ошибку:
"Монтажный кадр 1, слой "Слой 1", кадр 1, строка 12 1120: Обращение несуществующего свойства myText.
"

Переменную тексту я присвоил. Как сделать этот счётчик..?

Старый 05.12.2010, 09:16
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Там же массив статический, по этому в кадре (первом и единственном) там где и myText напишите
myText.text= Ball.myNameArray.length

Но возможно и не так, ведь непонятно где у вас этот код расположен, в классе или в кадре?

Старый 05.12.2010, 14:34
Lyso вне форума Посмотреть профиль Отправить личное сообщение для Lyso Посетить домашнюю страницу Lyso Найти все сообщения от Lyso
  № 3  
Ответить с цитированием
Lyso

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
У меня два файла, первый добавляет шары, а второй сам AS код.

Вод коды двух файлов:

1 файл, добавление самих шаров:
Код AS3:
import flash.display.Sprite; 
import flash.text.*; 
 
stage.addEventListener(MouseEvent.CLICK,addBall);
 
function addBall(e:MouseEvent):void{
	var ball:Ball=new Ball();
	addChild(ball);
	ball.x=mouseX;
	ball.y=mouseY;
}
 
myText.text= Ball.allBalls.length
И второй, сам код (обрезан)
Код AS3:
package{
	import flash.display.MovieClip;
	import flash.events.Event;
	 import flash.text.*;
 
	public class Ball extends MovieClip{
		public static var allBalls:Array=[];
		var xspeed:Number=-10+Math.random()*20;
		var yspeed:Number=-5;
		var grav:Number=1;
		var radius:Number;
 
		public function Ball(){
			scaleX=scaleY=Math.random()*0.5+0.5;
			radius=width/2;
			allBalls.push(this);
			addEventListener(Event.ENTER_FRAME,onFrame); //Слушатель событый, в каждый кадр.
			trace(allBalls.length); //В trace всё выводится отлично, а в текст - нет!
 
		}
//Продолжение скрыто.
У меня выходит новая ошибка "Монтажный кадр 1, слой "Слой 1", кадр 1, строка 13 1067: Неявное приведение значения типа uint к несоответствующему типу String.
"

А если я делаю так:
Код AS3:
myText.text:String= Ball.allBalls.length
То ошибка "Монтажный кадр 1, слой "Слой 1", кадр 1, строка 13 1078: Метка должна быть простым идентификатором.
"

Её я решить уже не могу..


Последний раз редактировалось Lyso; 05.12.2010 в 14:37.
Старый 05.12.2010, 14:41
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 4  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
попробуй так
Код AS3:
import flash.display.Sprite; 
import flash.text.*; 
 
stage.addEventListener(MouseEvent.CLICK,addBall);
 
function addBall(e:MouseEvent):void{
	var ball:Ball=new Ball();
	addChild(ball);
	ball.x=mouseX;
	ball.y=mouseY;
           myText.text= Ball.allBalls.length.toString();
 
}

Старый 05.12.2010, 14:47
Lyso вне форума Посмотреть профиль Отправить личное сообщение для Lyso Посетить домашнюю страницу Lyso Найти все сообщения от Lyso
  № 5  
Ответить с цитированием
Lyso

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
Больше спасибо! Сработало! А можете объяснить для чего эта строчка, и когда её надо добавлять?

Старый 05.12.2010, 14:56
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 6  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
myText.text тип String
Ball.allBalls.length тип int
as3 имеет строгую типелизацию(не знаю как слово пишется)
тоесть нельзя сравнивать или присваивать переменные разных типов
у типа int есть метод(функция) toString который возвращает строковое представление числа.


Последний раз редактировалось medvedya2; 05.12.2010 в 15:00.
Старый 05.12.2010, 15:11
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
строгую типелизацию
типизация.

Где-то видел тут, что "" + 5 работает быстрее.
Код AS3:
var str:String = "";
str += 5;
trace(str); // 5
Как видно, тут идет неявное преобразование типов.
__________________
тут я

Старый 05.12.2010, 15:25
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 8  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
КорДум без ";" тоже работает, но ставить надо.

Цитата:
Где-то видел тут, что "" + 5 работает быстрее.
индусы постарались

Старый 05.12.2010, 16:02
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 9  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
без ";" тоже работает, но ставить надо.
Это вы не в тему. Для простеньких операций можно и такую штуку делать. Получаем выигрыш в скорости.

Ок, тогда так:
Код AS3:
String(5);
Пруфлинк: http://www.flasher.ru/forum/showthre...light=toString
__________________
тут я

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

Теги
вывод , Счётчик , текст
Опции темы
Опции просмотра

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

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


 


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


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