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

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

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

Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
По умолчанию Обращение к компоненту из as

Доброе утро! Вообщем проблема такая: работаю во флеш билдере, есть mxml файл и as файл. В мхмл сделал поле для ввода текста с id="tf", в as написал класс, сделал функцию изменения его свойства .text, далее импортировал ас, главную функцию ас в мхмл, компилятор стал ругаться на обращение несуществующего свойства компонента tf.text (id компонента), как рассказать ему о существовании данного компонента? Как вы уже поняли я новичок и заранее извиняюсь за возможно глупый вопрос, просто пытался разобраться всю ночь перепробовал кучу способов и не один не помог... Заранее Спасибо!

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Код можно?

Старый 29.09.2011, 20:11
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 3  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Правильнее будет вместо своего класса написать свой компонент на основе TextArea/TextInput, в который встраивается нужная функциональность (изменение свойства .text, например).
И этот компонент использовать для создания поля ввода.

Старый 30.09.2011, 00:52
sstotenkopf вне форума Посмотреть профиль Отправить личное сообщение для sstotenkopf Найти все сообщения от sstotenkopf
  № 4  
Ответить с цитированием
sstotenkopf
 
Аватар для sstotenkopf

Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
Цитата:
Сообщение от Silicium Посмотреть сообщение
Код можно?
Конечно)

мхмл vkc:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
			   applicationComplete="exch()">
 
	<fx:Script>		
		<![CDATA[
			//applicationComplete="main(main)"
			import main;
			public function exch():void{
				main();
			}
 
 
		]]>
	</fx:Script>
	<fx:Declarations>
		<!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
	</fx:Declarations>
	<s:TextInput id="aLabel" x="164" y="152" height="167" width="336" text=""/>
 
 
 
</s:Application>
Файл АС:
Код AS3:
// ActionScript file
 
 
 
package
{
 
	import flash.display.Sprite;
	import flash.events.*;
	import vk.APIConnection;
	import vk.events.*;
	import vkc;
 
 
 
 
	public class main extends Sprite
	{
		public var api_id:Number;
		public var viewer_id:Number;
		public var sid:String;
		public var secret:String;
 
		public function main()
		{
			// получаем flashVars
			var flashVars:Object = stage.loaderInfo.parameters as Object;
			// присваиваем переменным значения из flashVars
			api_id = flashVars['api_id'];
			viewer_id = flashVars['viewer_id'];
			sid = flashVars['sid'];
			secret = flashVars['secret'];
 
			// для тестирования локально, вводим свои данные здесь и раскоменчиваем код
			flashVars['api_id'] = ****;
			flashVars['viewer_id'] = *****;
			flashVars['sid'] = ******;
			flashVars['secret'] = ******;
 
 
			// инициализация
			var VK:APIConnection = new APIConnection(flashVars);
			// выполняем запрос getProfiles, в качестве параметра uids используем id пользователя, просматривающего приложения, в параметре fields указываем photo_big - большая фотография пользователя
			VK.api('getProfiles', { uids: flashVars['viewer_id'],fields:'photo_big' }, onProfileLoaded, onError);
		}
 
		// данные получены
		private function onProfileLoaded(data: Object):void
		{
			// обрабатываем полученный ответ
			aLabel.text = data[0]['uid'] + ' ' + data[0]['first_name'] + ' ' + data[0]['last_name'] + ' ' + data[0]['photo_big'];
		}
 
		// если произошла ошибка
		private function onError(data: Object):void
		{
			aLabel.text = data.error_msg;
		}
	}
}


Последний раз редактировалось Котяра; 02.10.2011 в 12:54.
Старый 30.09.2011, 01:51
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 5  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
Код AS3:
<mx:Script source="yourPath/YourFile.as"/>

Старый 30.09.2011, 02:29
sstotenkopf вне форума Посмотреть профиль Отправить личное сообщение для sstotenkopf Найти все сообщения от sstotenkopf
  № 6  
Ответить с цитированием
sstotenkopf
 
Аватар для sstotenkopf

Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
Цитата:
Сообщение от Dimitry_II Посмотреть сообщение
Код AS3:
<mx:Script source="yourPath/YourFile.as"/>
На сколько я знаю, include не дает возможность объявлять класс в ас файле, поэтому этот метод не подходит... Тем более я уже так пробовал)

Старый 30.09.2011, 08:21
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Вы хотите смерджить два примера?

вариант 1
Код AS3:
public function exch():void{
new main();
}
вариант 2
от Dimitry_II

но из main.as надо выкинуть все лишнее, чтобы он не был классом

Код AS3:
import flash.display.Sprite;
import flash.events.*;
import vk.APIConnection;
import vk.events.*;
import vkc;
 
public var api_id:Number;
public var viewer_id:Number;
public var sid:String;
public var secret:String;
 
public function main()
{
// получаем flashVars
var flashVars:Object = stage.loaderInfo.parameters as Object;
// присваиваем переменным значения из flashVars
api_id = flashVars['api_id'];
viewer_id = flashVars['viewer_id'];
sid = flashVars['sid'];
secret = flashVars['secret'];
 
// для тестирования локально, вводим свои данные здесь и раскоменчиваем код
flashVars['api_id'] = ****;
flashVars['viewer_id'] = *****;
flashVars['sid'] = ******;
flashVars['secret'] = ******;
 
 
// инициализация
var VK:APIConnection = new APIConnection(flashVars);
// выполняем запрос getProfiles, в качестве параметра uids используем id пользователя, просматривающего приложения, в параметре fields указываем photo_big - большая фотография пользователя
VK.api('getProfiles', { uids: flashVars['viewer_id'],fields:'photo_big' }, onProfileLoaded, onError);
}
 
// данные получены
private function onProfileLoaded(data: Object):void
{
// обрабатываем полученный ответ
aLabel.text = data[0]['uid'] + ' ' + data[0]['first_name'] + ' ' + data[0]['last_name'] + ' ' + data[0]['photo_big'];
}
 
// если произошла ошибка
private function onError(data: Object):void
{
aLabel.text = data.error_msg;
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Верно. Если цель всех этих изощрений - отделить AS код от mxml - то класс не нужен, вариант GBee - самый самый. Если все-же нужен класс, то ни в коем случае не юзать внутри него прямые ссылки на объекты вне класса.
Код AS3:
aLabel.text = ...
- так делать очень плохо)

Старый 01.10.2011, 01:05
sstotenkopf вне форума Посмотреть профиль Отправить личное сообщение для sstotenkopf Найти все сообщения от sstotenkopf
  № 9  
Ответить с цитированием
sstotenkopf
 
Аватар для sstotenkopf

Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
Цитата:
Сообщение от Silicium Посмотреть сообщение
Верно. Если цель всех этих изощрений - отделить AS код от mxml - то класс не нужен, вариант GBee - самый самый. Если все-же нужен класс, то ни в коем случае не юзать внутри него прямые ссылки на объекты вне класса.
Код AS3:
aLabel.text = ...
- так делать очень плохо)
А как же лучше поступить при условии использования класса, создать объект внутри него?

Добавлено через 23 минуты
Попробовал вариант без класса, ошибок компиляции нет, но текстовое поле не изменяет... Блин это жестко... во флеш я это сделал за 5 минут, тут же мучаюсь третий день


Последний раз редактировалось sstotenkopf; 01.10.2011 в 01:43.
Старый 01.10.2011, 12:12
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 10  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
А вы уверены, что доходит до изменения?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

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

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


 


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


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