| 
 ActionScript и JavaScript Возникла проблема. Я делал мост с AS3 в JS. 1. Вставляю в html swf. 2. Нахожу по id нужный объект 3. Пишу функцию взятую с AS3. Например, obj.setValue(val); - и она не работает! 4. Пишу туже функцию в событии например при нажатии на кнопку, работает отлично. как сделать так что бы можно было пользоватся функциями сразу после создания объекта??? если коротко, то типа такого кода: 
obj = getSWF("objectSWF_ID");
obj.setValue(100); - полсе этой строки код не работает!
если писать так, то работает: 
obj = getSWF("objectSWF_ID");
btn.onclick = function(){
     obj.setValue(100); 
}
 | 
| 
 наверно, потому что на момент инициализации obj флешка еще не прогрузилась, а значит и методов никаких еще нет. ориентируйтесь на событие window.onload либо аналогичное для флешки. с флешками я не работал, но полагаю, что должно сработать такое: 
obj = getSWF("objectSWF_ID");
obj.onload=function(){
obj.setValue(100);
}
 | 
| 
 не выходит...единственный плюс в том что код который расположен ниже теперь работает...но функция сама всеравно не работает | 
| 
 м? Цитата: 
 вы внримательно читали мое сообщение, или только код себе скопировали, не вникая? | 
| 
 тогда код расположенный после импортированной функции неработал вообще если эту функцию впихнуть в событие onload то она также невыолпняется, но код идущий после события теперь работает у меня там создается кнопка...в первом случае ее нет, в другом - она есть и работает на ней onclick кину код весь... мне кажется что я чета с событиями нето делаю 
<script language="javascript">
function DSWFLib(lib_file,style){
	
style.width = style.width||style.w||100;
style.height = style.height||style.h||100;
style.x = style.left||style.x||5;
style.y = style.top||style.y||5;
var frm = DFrame(style);
frm.setDrag({method:"drag"});
var swf = '<object '+
   'id="SWFLIBNAME'+frm.id+'" width='+style.width+' height='+style.height+'   '+     
   'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"   '+
'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'+
   '<param name="movie" value="'+lib_file+'" />'+
   '<param name="allowScriptAccess" value="sameDomain" />'+
  ' <param name="wmode" value="transparent">'+
   '<embed'+
      ' src="'+lib_file+'"'+ 
	  ' wmode="transparent"'+
      ' name="SWFLIBNAME'+frm.id+'" align="middle"'+
       'play="true" loop="false" quality="high" allowScriptAccess="sameDomain"'+
       'width='+style.width+' height='+style.height+' scale="exactfit" '+
       'type="application/x-shockwave-flash"'+
       'pluginspage="http://www.macromedia.com/go/getflashplayer">'+
   '</embed>'+
'</object>';
frm.innerHTML = swf;
frm.getSWF = function(){
	var M$ =  navigator.appName.indexOf("Microsoft")!=-1;
	return (M$ ? window : document)["SWFLIBNAME"+frm.id];
}
frm.object = frm.getSWF();
frm.onProgress = DGUI_EMPTY_FUNCTIONS;
frm.onCompleted = DGUI_EMPTY_FUNCTIONS;
return frm;
}
var swf = DSWFLib("lib/DSound.swf"+DCacheOff(),{x:10,y:10,w:200,h:200});
//swf.object.setContext(400,true); // если эту строку разкоментить, то они и код после нее не работает
var btn1=DHSButton({mainStyle:{x:250,y:100,width:150,height:40},
    firstStyle:{backgroundColor:"#bb5555"},
    secondStyle:{backgroundColor:"#55bb55", display:"none"},
    textStyle:{color:"#9999ff",fontSize:20},
	text:"Загрузить"
});
var btn2=DHSButton({mainStyle:{x:250,y:140,width:150,height:40},
    firstStyle:{backgroundColor:"#bb5555"},
    secondStyle:{backgroundColor:"#55bb55", display:"none"},
    textStyle:{color:"#9999ff",fontSize:20},
	text:"Играть"
});
//////////////////ФУНКЦИИ ПОЛУЧАЕМЫЕ ИЗ ФЛЭША////////////////
btn1.onclick = function(){swf.object.load("music/AkonClapAgain.mp3",false);	} // работа.т отлично
btn2.onclick = function(){swf.object.play("music/AkonClapAgain.mp3",false);	} //работают отлично
////////////////////////////////////////////////////////////
var win_consol=DConsole({x:500,y:100});
var txt = DText("");
swf.onload = function(){
	txt.setText(swf.object);  //функция не работает, но код ниже работает
}
var timer=new DTimer(200);
timer.onTimer=function(){
	win_consol.clin();
	
	win_consol.addLine("Статус: "+swf.object.getStatus());                 //работают отлично
	win_consol.addLine("Загрузка: "+swf.object.getLoaded());              //работают отлично
	win_consol.addLine("Резервный буфер: "+ swf.object.getContext()); //работают отлично
	win_consol.addLine("Ошибки: "+swf.object.getError());                     //работают отлично
}
timer.start();
</script>
</html>
 | 
| 
 Опера выкидывают такую ошибку message: Statement on line 99: Type mismatch (usually non-object value supplied where object required) | 
| 
 Цитата: 
 или по вашему мнению. код без начального body - является полным? | 
| 
 1) а флешка в документ вставляется? 2) у тэга object нету события onload (по стандарту), и похоже не только по стандарту - лучше что-то делать по window.onload | 
| 
 Цитата: 
 Код весь, все функции имеют понятные имена, например не трудно догодатся что DHSButton создает кнопку, или DCоnsole создает доп. консоль для вывода промежуточных результатов. Насчет window.onload попробую..времени небыло пока. | 
| 
 по window.onload странно как-то в IE пашет норм window.onload = function(){ swf.obj.setContext(3000); } а в Опере только с setTimeout("swf.obj.setContext(3000);",100) интересно еще что при onload рабоает при значении 100, а если писать сразу вкоде, то толко после 300 хотя по теории ка и в IE должна работать без setTimeout В IE даже работает window.setTimeout("sound.setContext(3000);",0); с нулем всмысле...типа как я понял ставит в очередь на выполнение.....но Опера упертая...и никак А можно как-нибудь сделать чтобы страница ваще не работала пока все не загрузится и не создадится? window.onload не совсем выход Пытался разбить на две функции 1. Загружает флэш 2. Находит object или embed но суть от этого не поменялась... | 
| Часовой пояс GMT +3, время: 18:48. |