![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
|
Доброе утро! Вообщем проблема такая: работаю во флеш билдере, есть mxml файл и as файл. В мхмл сделал поле для ввода текста с id="tf", в as написал класс, сделал функцию изменения его свойства .text, далее импортировал ас, главную функцию ас в мхмл, компилятор стал ругаться на обращение несуществующего свойства компонента tf.text (id компонента), как рассказать ему о существовании данного компонента? Как вы уже поняли я новичок и заранее извиняюсь за возможно глупый вопрос, просто пытался разобраться всю ночь перепробовал кучу способов и не один не помог... Заранее Спасибо!
|
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Код можно?
|
|
|||||
|
Регистрация: Jun 2011
Сообщений: 212
|
Правильнее будет вместо своего класса написать свой компонент на основе TextArea/TextInput, в который встраивается нужная функциональность (изменение свойства .text, например).
И этот компонент использовать для создания поля ввода. |
|
|||||
|
Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
|
Конечно)
мхмл vkc: <?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> // 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. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 211
|
|
|
|||||
|
Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
|
На сколько я знаю, include не дает возможность объявлять класс в ас файле, поэтому этот метод не подходит... Тем более я уже так пробовал)
|
|
|||||
|
Вы хотите смерджить два примера?
вариант 1 вариант 2 от Dimitry_II но из main.as надо выкинуть все лишнее, чтобы он не был классом 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; }
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Верно. Если цель всех этих изощрений - отделить AS код от mxml - то класс не нужен, вариант GBee - самый самый. Если все-же нужен класс, то ни в коем случае не юзать внутри него прямые ссылки на объекты вне класса.
- так делать очень плохо)
|
|
|||||
|
Регистрация: Aug 2010
Адрес: Саратов
Сообщений: 185
|
Цитата:
Добавлено через 23 минуты Попробовал вариант без класса, ошибок компиляции нет, но текстовое поле не изменяет... Блин это жестко... во флеш я это сделал за 5 минут, тут же мучаюсь третий день Последний раз редактировалось sstotenkopf; 01.10.2011 в 01:43. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|