Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   "Не удалось найти свойство 0 в String" (http://www.flasher.ru/forum/showthread.php?t=155716)

Telv 08.05.2011 23:20

"Не удалось найти свойство 0 в String"
 
Во Flash пишет ошибку:
Цитата:

ReferenceError: Error #1069: Не удалось найти свойство 0 в String; отсутствует значение по умолчанию.
at main.radio::Radio/update()
at main.radio::Radio()
at main::Main()
в этом коде:
Код:

package main.radio{
///Библиотеки классов
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;

public class Radio extends MovieClip {
/*------------------Массив с названиями радиостанций---------------------*/
 private var Data:Array=[
 "Smile Fm",
 "Kinkaardschok",
 "Kiss fm" ,
 "Радио Рекорд",
 "Net Radio Adult",
 "Net Radio Hot",
 "Net Radio Garage" ,
 "Net Radio Rap"
 ];


 ///фон плеера
 public var BackGround:radioBg=new radioBg();
 ///кнопка плей
 public var Play:playBtn=new playBtn();
 ///кнопка стоп
 public var Stop:stopBtn=new stopBtn();
 //следующая
 public var Next:nextBtn=new nextBtn();
 // предыдущая
 public var Prev:nextBtn=new nextBtn();
 //Играет ли музыка
 public var MusicPlay:Boolean=false;
 //Для работы с звуокм
 private var sc:SoundChannel = new SoundChannel();
 private var s:Sound=null;
 //Текущая радиостанция
 private var curChanel:uint=0;

/*------------------Позиции объектов---------------------*/
 public function Radio(_x:Number=0,_y:Number=0) {
  //позиционируем фон
  BackGround.x=_x;
  BackGround.y=_y;
  addChild(BackGround);
  //позиционируем кнопки управления
  Play.x=_x+20;
  Play.y=_y+20;
  addChild(Play);
  Stop.x=_x+20;
  Stop.y=_y+20;
  addChild(Stop);
  Prev.x=_x+80;
  Prev.y=_y+15;
  Prev.scaleX=-1;
  addChild(Prev);
  Next.x=_x+260;
  Next.y=_y+15;
  addChild(Next);
 

/*------------------Слушатели---------------------*/
  Play.addEventListener(MouseEvent.CLICK,SoundPlay);
  Stop.addEventListener(MouseEvent.CLICK,SoundStop);
  Next.addEventListener(MouseEvent.CLICK,SoundNext);
  Prev.addEventListener(MouseEvent.CLICK,SoundPrev);
  //Обновляем текстовое поле и кнопки
  update();
 }
 
/*------------------Кнопка "Плей"---------------------*/
 public function SoundPlay(e:MouseEvent) {
  if (MusicPlay==false) {
  if (s) {
    //закрываем канал если он открыт
    s.close();
  }
  //Получаем ссылку радиостанции из массива
  var nextTitle:Sound=new Sound();
  //new URLRequest(Data[1][curChanel])
  //Грузим её
  s=nextTitle;
  //Воспроизводим
  sc=s.play();
  //Указывем что музыка играет
  MusicPlay=true;
  //Обновляем кнопки
  update();
  }
 }

/*------------------Кнопка "Стоп"---------------------*/
 public function SoundStop(e:MouseEvent) {
  //Останавливаю музыку
  sc.stop();
  if (s) {
  //закрываем канал если он открыт
  s.close();
  }
  //Указывем что музыка не играет
  MusicPlay=false;
  s=null;
  //Обновляем кнопки
  update();
 }

/*------------------Кнопка "Следующая"---------------------*/
 public function SoundNext(e:MouseEvent) {
  //Останавливаю музыку
  sc.stop();
  if (s) {
  //закрываем канал если он открыт
  s.close();
  }
  //Указывем что музыка не играет
  MusicPlay=false;
  //Получаем ссылку радиостанции [из массива]
  var nextTitle:Sound=new Sound(new URLRequest(url))
  var url:String = "http://SmileFm.listen.moeradio.ru:10000/SmileFm";
  //Грузим её
  s=nextTitle;
  //Воспроизводим
  sc=s.play(0);
  //Указывем что музыка играет
  MusicPlay=true;
  //Обновляем текстовое поле
  update();
 }

/*------------------Кнопка "Предыдущая"---------------------*/
 public function SoundPrev(e:MouseEvent) {
  //Останавливаю музыку
  sc.stop();
  if (s) {
  //закрываем канал если он открыт
  s.close();
  }
  //Указывем что музыка не играет
  MusicPlay=false;
  //Получаем ссылку радиостанции [из массива]
  var nextTitle:Sound=new Sound(new URLRequest(url))
  var url:String = "http://russkoe-128.app1848482.moeradio.ru:10000/Russkoe-128";
  //Грузим её
  s=nextTitle;
  //Воспроизводим
  sc=s.play(0);
  //Указывем что музыка играет
  MusicPlay=true;
  //Обновляем текстовое поле
  update();
 }
/*------------------Update---------------------*/
 private function update() {
  //Обновляем текстовое поле и отображаем название радиостанции
  BackGround.name_txt.text=Data[0][curChanel];
  ///Показываем кнопку stop если play нажата и наоборот
  if (MusicPlay==true) {
  Play.visible=false;
  Stop.visible=true;
  } else {
  Play.visible=true;
  Stop.visible=false;
  }
 }
}
}

Может, кто знает, что нужно делать?


UPD: делал по этому уроку, и решил не много изменить под себя.

in4core 08.05.2011 23:27

Код AS3:

BackGround.name_txt.text=Data[0][curChanel].toString();

Добавлено через 1 минуту
Код AS3:

private var Data:Array=[
 "Smile Fm",
 "Kinkaardschok",
 "Kiss fm" ,
 "Радио Рекорд",
 "Net Radio Adult",
 "Net Radio Hot",
 "Net Radio Garage" ,
 "Net Radio Rap"
 ];

ВНимательно смотрите массив одномерный, а вы дергаете двумерный.
И ваще не читайте такие уроки. написано криво аж жуть, особенно имена

wvxvw 08.05.2011 23:48

Data - это массив, первый элемент в котором - строка. Если вам нужен символ из строки - используйте charAt(), например: "abcd".charAt(2) вернет "c".
Я не зарегистрирован на сайте, где вы нашли урок, но названия и форматирование, да и вообще задумка автора урока - плохой пример для обучения...
http://help.adobe.com/en_US/FlashPla...dia/Sound.html
И вообще, всегда лучше начать изучение с мануала. Это только кажется, что там много всего. Потратите час на чтение документации - сэкономите день, месяц, год... на практике :)

Telv 09.05.2011 00:19

всем большое спсибо:)
вопрос можно считать закрытым.


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

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